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

জাভাস্ক্রিপ্টে অবজেক্টের অ্যারে নিয়ে ট্রি-স্ট্রাকচার তৈরি করা

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

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. জাভাস্ক্রিপ্টে arguments অবজেক্টকে অ্যারে কনভার্ট কীভাবে করবেন?

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

  3. জাভাস্ক্রিপ্ট - অ্যারে অবজেক্টের length প্রোপার্টি

  4. জাভাস্ক্রিপ্টে অবজেক্টের অ্যারে কনভার্ট করে প্লেইন অবজেক্ট বানানো