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

ऑब्जेक्ट्स की सरणी लें और उपरोक्त JSON को जावास्क्रिप्ट में ट्री-स्ट्रक्चर में बदलें

<घंटा/>

मान लीजिए, हमारे पास इस तरह की वस्तुओं की एक सरणी है -

const arr = [
   {
      "parentIndex": '0' ,
      "childIndex": '3' ,
      "parent": "ROOT",
      "child": "root3"
   },
   {
      "parentIndex": '3' ,
      "childIndex": '2' ,
      "parent": "root3" ,
      "child": "root2"
   },
   {
      "parentIndex": '3' ,
      "childIndex": '1' ,
      "parent": "root3" ,
      "child": "root1"
   }
];

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो वस्तुओं की एक ऐसी सरणी लेता है। फिर फ़ंक्शन को रिकर्सन का उपयोग करना चाहिए और उपरोक्त JSON को ट्री-स्ट्रक्चर में बदलना चाहिए।

पेड़ की संरचना कुछ इस तरह दिखेगी -

nodeStructure: {
   text: { name: "root3" },
   children: [
      {
         text: { name: "root2" }
      },
      {
         text: { name: "root1" }
      }
   ]
}
};

उदाहरण

इसके लिए कोड होगा -

const arr = [
   {
      "parentIndex": '0' ,
      "childIndex": '3' ,
      "parent": "ROOT",
      "child": "root3"
   },
   {
      "parentIndex": '3' ,
      "childIndex": '2' ,
      "parent": "root3" ,
      "child": "root2"
   },
   {
      "parentIndex": '3' ,
      "childIndex": '1' ,
      "parent": "root3" ,
      "child": "root1"
   }
];
const partial = (arr = [], condition) => {
   const result = [];
   for (let i = 0; i < arr.length; i++) {
      if(condition(arr[i])){
         result.push(arr[i]);
      }
   }
   return result;
}
const findNodes = (parentKey,items) => {
   let subItems = partial(items, n => n.parent === parentKey);
   const result = [];
   for (let i = 0; i < subItems.length; i++) {
      let subItem = subItems[i];
      let resultItem = {
         text: {name:subItem.child}
      };
      let kids = findNodes(subItem.child , items);
      if(kids.length){
         resultItem.children = kids;
      }
      result.push(resultItem);
   }
   return result;
}
console.log(JSON.stringify(findNodes('ROOT', arr), undefined, 4));

आउटपुट

और कंसोल में आउटपुट होगा -

[
   {
      "text": {
         "name": "root3"
      },
      "children": [
         {
            "text": {
               "name": "root2"
            }
         },
         {
            "text": {
               "name": "root1"
            }
         }
      ]
   }
]

  1. मैं तर्क वस्तु को जावास्क्रिप्ट में एक सरणी में कैसे परिवर्तित कर सकता हूं?

    आर्ग्युमेंट्स ऑब्जेक्ट को ऐरे में बदलने के लिए जावास्क्रिप्ट में Array.from() मेथड का इस्तेमाल करें उदाहरण लाइव डेमो <!DOCTYPE html> <html>    <body>       <script>          function sortArg() {         &n

  1. जावास्क्रिप्ट एक सरणी को JSON में बदलें

    जावास्क्रिप्ट में किसी सरणी को JSON में बदलने के लिए, कोड इस प्रकार है - उदाहरण body { font-family:Segoe UI, Tahoma, Geneva, Verdana, sans-serif; }सरणी को JSON में बदलनायहां क्लिक करें सरणी को JSON में बदलने के लिए उपरोक्त बटन पर क्लिक करें let sampleEle =document.querySelector(.sample); लेट एरर =[

  1. जावास्क्रिप्ट - सरणी वस्तुओं की लंबाई

    जावास्क्रिप्ट में लंबाई संपत्ति वस्तु का आकार लौटाती है। स्ट्रिंग और सरणी ऑब्जेक्ट की लंबाई के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना, .परिणाम {फ़ॉन्ट-आकार:18पीएक्स; फ़ॉन्ट-वजन:500; लाल रंग; }जावास्क्रिप्ट लंबाई गुणयहा