কম্পিউটার

অবজেক্টের অ্যারে নিন এবং উপরের 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 কে একটি Tree−structure এ রূপান্তর করবে।

গাছের কাঠামো −

এর মত দেখতে হবে
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. আমি কিভাবে আর্গুমেন্ট অবজেক্টকে জাভাস্ক্রিপ্টে একটি অ্যারেতে রূপান্তর করতে পারি?

  2. জাভাস্ক্রিপ্ট একটি অ্যারেকে JSON এ রূপান্তর করুন

  3. জাভাস্ক্রিপ্ট - অ্যারে অবজেক্টের দৈর্ঘ্য

  4. জাভাস্ক্রিপ্টে বস্তুর একটি অ্যারেকে প্লেইন অবজেক্টে রূপান্তর করুন