কম্পিউটার

নেস্টেড জাভাস্ক্রিপ্ট অবজেক্টের একটি গভীরতা স্তর গণনা কিভাবে?


আমাদের কাছে অবজেক্টের একটি বিন্যাস রয়েছে, যেগুলিতে আরও এইরকম নেস্টেড অবজেক্ট রয়েছে -

const arr = [{
   id: 0, children: []
}, {
      id: 1, children: [{
      id: 2, children: []
}, {
      id: 3, children: [{
         id: 4, children: []
      }]
   }]
}];

আমাদের কাজ হল একটি পুনরাবৃত্ত ফাংশন লেখা, বলুন assignDepth() যা এই অ্যারেতে নেয় এবং প্রতিটি নেস্টেড অবজেক্টে ডেপথ প্রপার্টি বরাদ্দ করে। আইডি 0 এর অবজেক্টের মতোই ডেপথ 0 থাকবে, আইডি 1-এরও ডেপথ 1 থাকবে এবং যেহেতু আইডি 2 এবং আইডি 3 আইডি 1 এর ভিতরে নেস্ট করা আছে তাদের ডেপথ 1 এবং আইডি 4 থাকবে যা 3 আইডির ভিতরে আরও নেস্ট করা আছে এর ডেপথ 2 থাকবে।

অতএব, এই ফাংশনের জন্য কোড লিখি। এটি একটি সাধারণ পুনরাবৃত্ত ফাংশন যা সাব অবজেক্টগুলিকে বারবার পুনরাবৃত্তি করে যতক্ষণ না এটি অ্যারের শেষ পর্যন্ত পৌঁছায় −

উদাহরণ

const arr = [{
   id: 0, children: []
}, {
      id: 1, children: [{
      id: 2, children: []
}, {
      id: 3, children: [{
         id: 4, children: []
      }]
   }]
}];
const assignDepth = (arr, depth = 0, index = 0) => {
   if(index < arr.length){
      arr[index].depth = depth;
      if(arr[index].children.length){
         return assignDepth(arr[index].children, depth+1, 0);
      };
      return assignDepth(arr, depth, index+1);
   };
   return;
};
assignDepth(arr);
console.log(JSON.stringify(arr, undefined, 4));

আউটপুট

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

[
   {
      "id": 0,
      "children": [],
      "depth": 0
   },
   {
      "id": 1,
      "children": [
         {
            "id": 2,
            "children": [],
            "depth": 1
         },
         {
            "id": 3,
            "children": [
               {
                  "id": 4,
                  "children": [],
                  "depth": 2
               }
            ],
            "depth": 1
         }
      ],
      "depth": 0
   }
]

  1. কিভাবে জাভাস্ক্রিপ্টে আইডি দ্বারা অবজেক্টের অ্যারে গ্রুপ করবেন?

  2. কিভাবে দুটি জাভাস্ক্রিপ্ট অবজেক্ট মার্জ করবেন?

  3. জাভাস্ক্রিপ্টে একটি মানের উপর ভিত্তি করে বস্তুগুলিকে কীভাবে গ্রুপ করবেন?

  4. জাভাস্ক্রিপ্টে একটি অ্যারের বস্তুতে নেস্টেড অ্যারে জোড়াকে কীভাবে রূপান্তর করবেন?