কম্পিউটার

জাভাস্ক্রিপ্টে ফ্ল্যাট অ্যারে থেকে ট্রি অ্যারে তৈরি করুন


আমাদের কাছে একটি জটিল json ফাইল রয়েছে যা পরবর্তীতে একটি গাছ তৈরি করার জন্য এটিকে শ্রেণিবদ্ধ করার জন্য আমাদের জাভাস্ক্রিপ্টের সাথে পরিচালনা করতে হবে৷

JSON অ্যারের প্রতিটি এন্ট্রিতে −

থাকে
  • id - একটি অনন্য আইডি,

  • parentId − প্যারেন্ট নোডের id (যা 0 হয় যদি নোডটি গাছের মূল হয়)

  • স্তর - গাছের গভীরতার স্তর

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 output = [
   {
      "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": []
         }
      ]
   }
];

উদাহরণ

এর জন্য কোড হবে −

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.from() পদ্ধতি

  2. জাভাস্ক্রিপ্টে Array.flat() পদ্ধতি।

  3. জাভাস্ক্রিপ্টে Array.prototype.flat()।

  4. জাভাস্ক্রিপ্টে গাছে বস্তুর সমতল অ্যারে