আমাদের কাছে অবজেক্টের একটি বিন্যাস রয়েছে, যেগুলিতে আরও এইরকম নেস্টেড অবজেক্ট রয়েছে -
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
}
]