Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में फ्लैट सरणी से ट्री सरणी बनाएं


हमारे पास एक जटिल 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": []         }       ]     } ]

  1. JavaScript में Array.flat() मेथड JavaScript में Array.flat() मेथड

    JavaScript Array.flat() मेथड का उपयोग एक ऐरे को निर्दिष्ट गहराई तक रिकर्सिवली फ्लैट करने के लिए किया जाता है। यह मूल ऐरे में हेरफेर नहीं करता बल्कि एक नया फ्लैट ऐरे बनाता है। उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta

  1. जावास्क्रिप्ट में Array.prototype.flat() मेथड जावास्क्रिप्ट में Array.prototype.flat() मेथड

    जावास्क्रिप्ट Array.prototype.flat() मेथड का उपयोग किसी एरे को निर्दिष्ट गहराई तक रिकर्सिवली फ्लैट करने के लिए किया जाता है। यह मूल एरे में बदलाव नहीं करता बल्कि एक नया फ्लैट एरे बनाता है। Array.prototype.flat() मेथड के लिए कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <he

  1. JavaScript में फ्लैट ऑब्जेक्ट सरणी को ट्री में बदलना JavaScript में फ्लैट ऑब्जेक्ट सरणी को ट्री में बदलना

    मान लीजिए, हमारे पास ऑब्जेक्ट की एक सरणी है जैसे - const arr = [ { id: 1, name: name 1, parentId: null }, { id: 2, name: name 2, parentId: null }, { id: 2_1, name: name 2_1, parentId: 2 }, { id: 2_2, name: name 2_2, parentId: 2 }, { id: 3, name: name 3, parentId: null }, { i