在JavaScript 中從平面JSON 數組建立層次樹資料結構
在涉及複雜分層得至關重要,特別是對於表示樹狀結構。本文介紹如何在 JavaScript 中將平面 JSON 陣列轉換為分層樹。
問題
給定一個由具有三個關鍵屬性的物件組成的平面JSON 陣列:
任務是將這個平面數組轉換為分層樹結構,其中每個父節點封裝其子節點。
解決方案
一種有效的方法利用用於構建樹的地圖查找演算法。此演算法迭代平面數組兩次:
實作
以下JavaScript 程式碼片段展示了樹的實作-建築演算法:
function list_to_tree(list) { var map = {}, node, roots = [], i; for (i = 0; i < list.length; i += 1) { map[list[i].id] = i; // initialize the map list[i].children = []; // initialize the children } for (i = 0; i < list.length; i += 1) { node = list[i]; if (node.parentId !== "0") { // handle dangling branches here list[map[node.parentId]].children.push(node); } else { roots.push(node); } } return roots; }
將平面JSON陣列轉換為分層樹結構:
var entries = [ // ... entries as in the provided example ]; var tree = list_to_tree(entries); // The resulting `tree` is the hierarchical data structure
本文提出的演算法有效地將平面JSON 陣列轉換為分層結構JavaScript 中的樹結構。它依靠地圖查找方法進行高效構建,使其適合處理複雜的資料集。
以上是如何在 JavaScript 中有效地將平面 JSON 陣列轉換為分層樹結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!