কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে DB ফরম্যাট থেকে JSON ফরম্যাটে ট্রি রূপান্তর করা

ধরুন, আমাদের নিচের মতো একটি অবজেক্টের অ্যারে আছে:

const arr = [
  {"id":7,"name":"Kuwait","parentId":2},
  {"id":4,"name":"Iraq","parentId":2},
  {"id":10,"name":"Qatar","parentId":2},
  {"id":2,"name":"Middle East","parentId":1},
  {"id":3,"name":"Bahrain","parentId":2},
  {"id":6,"name":"Jordan","parentId":2},
  {"id":8,"name":"Lebanon","parentId":2},
  {"id":1,"name":"Africa/Middle East","parentId":null},
  {"id":5,"name":"Israel","parentId":2},
  {"id":9,"name":"Oman","parentId":2}
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে গ্রহণ করে। ফাংশনটি অবজেক্টগুলোকেও তাদের প্যারেন্ট অনুযায়ী গ্রুপ করে একটি নতুন অ্যারে তৈরি করবে।

অতএব, আউটপুট হবে:

const output = [
  {"id":55,"text":"Africa/Middle East","children":[
  {"id":2,"text":"Middle East","children":
  [{"id":7,"name":"Kuwait","children":[]},
  {"id":4,"name":"Iraq","children":[]},
  {"id":10,"name":"Qatar","children":[]},
  {"id":3,"name":"Bahrain","children":[]},
  {"id":6,"name":"Jordan","children":[]},
  {"id":8,"name":"Lebanon","children":[]},
  {"id":5,"name":"Israel","children":[]},
  {"id":9,"name":"Oman","children":[]}]} ];]

উদাহরণ

const arr = [
  {"id":7,"name":"Kuwait","parentId":2},
  {"id":4,"name":"Iraq","parentId":2},
  {"id":10,"name":"Qatar","parentId":2},
  {"id":2,"name":"Middle East","parentId":1},
  {"id":3,"name":"Bahrain","parentId":2},
  {"id":6,"name":"Jordan","parentId":2},
  {"id":8,"name":"Lebanon","parentId":2},
  {"id":1,"name":"Africa/Middle East","parentId":null},
  {"id":5,"name":"Israel","parentId":2},
  {"id":9,"name":"Oman","parentId":2}
];
const transformTree = (data, root = null) => {
  const res = [];
  const map = {};
  data.forEach((el) => {
    el.children = map[el.id] && map[el.id].children || [];
    map[el.id] = el;
    if (el.parentId === root) {
      res.push(el);
    }
    else {
      map[el.parentId] = map[el.parentId] || {};
      map[el.parentId].children = map[el.parentId].children || [];
      map[el.parentId].children.push(el);
    };
  });
  return res;
};
console.log(JSON.stringify(transformTree(arr), undefined, 4));

আউটপুট

কনসোলে আউটপুট হবে:

[
  {
    "id": 1,
    "name": "Africa/Middle East",
    "parentId": null,
    "children": [
      {
        "id": 2,
        "name": "Middle East",
        "parentId": 1,
        "children": [
          { "id": 7, "name": "Kuwait", "parentId": 2, "children": [] },
          { "id": 4, "name": "Iraq", "parentId": 2, "children": [] },
          { "id": 10, "name": "Qatar", "parentId": 2, "children": [] },
          { "id": 3, "name": "Bahrain", "parentId": 2, "children": [] },
          { "id": 6, "name": "Jordan", "parentId": 2, "children": [] },
          { "id": 8, "name": "Lebanon", "parentId": 2, "children": [] },
          { "id": 5, "name": "Israel", "parentId": 2, "children": [] },
          { "id": 9, "name": "Oman", "parentId": 2, "children": [] }
        ]
      }
    ]
  }
]
  1. জাভাস্ক্রিপ্ট JSON.parse() মেথড

  2. জাভাস্ক্রিপ্ট JSON HTML

  3. জাভাস্ক্রিপ্ট JSON অ্যারে

  4. জাভাস্ক্রিপ্ট ব্যবহার করে JSON অ্যারে থেকে ডেটা পড়া