हमारे पास एक जटिल JSON फाइल है जिसे बाद में ट्री बनाने के लिए पदानुक्रमित बनाने के लिए JavaScript से संभालना है।
JSON सरणी की प्रत्येक प्रविष्टि में −
id − एक अद्वितीय आईडी,
parentId − पैरेंट नोड की आईडी (जो 0 है यदि नोड ट्री की जड़ है)
level − ट्री में गहराई का स्तर
JSON डेटा पहले से "ऑर्डर किया गया" है, मतलब एक प्रविष्टि के ऊपर एक पैरेंट नोड या ब्रदर नोड होगा, और नीचे एक चाइल्ड नोड या ब्रदर नोड।
इनपुट सरणी है −
const arr = [ { "id": "12", "parentId": "0", "text": "Man", "level": "1", "children": null }, { "id": "6", "parentId": "12", "text": "Boy", "level": "2", "children": null }, { "id": "7", "parentId": "12", "text": "Other", "level": "2", "children": null }, { "id": "9", "parentId": "0", "text": "Woman", "level": "1", "children": null }, { "id": "11", "parentId": "9", "text": "Girl", "level": "2", "children": null } ]; const listToTree = (arr = []) => { let map = {}, node, res = [], i; for (i = 0; i < arr.length; i += 1) { map[arr[i].id] = i; arr[i].children = []; }; for (i = 0; i < arr.length; i += 1) { node = arr[i]; if (node.parentId !== "0") { arr[map[node.parentId]].children.push(node); } else { res.push(node); }; }; return res; }; console.log(JSON.stringify(listToTree(arr), undefined, 4));आउटपुट
और कंसोल में आउटपुट होगा −
[ { "id": "12", "parentId": "0", "text": "Man", "level": "1", "children": [ { "id": "6", "parentId": "12", "text": "Boy", "level": "2", "children": [] }, { "id": "7", "parentId": "12", "text": "Other", "level": "2", "children": [] } ] }, { "id": "9", "parentId": "0", "text": "Woman", "level": "1", "children": [ { "id": "11", "parentId": "9", "text": "Girl", "level": "2", "children": [] } ] } ]