ধরা যাক, у нас একটি নেস্টেড অবজেক্ট অ্যারে আছে এরকম -
const arr = [
{ value: 'some value' },
{
array: [
{ value: 'some value' },
{
array: [
{ value: 'some value' },
{ value: 'some value' },
],
},
{ value: 'some value' },
{
array: [
{ value: 'some value' },
{
array: [
{ value: 'delete me' },
{ value: 'some value' },
]
}
],
},
],
}
];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে এমন একটি অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসেবে ইনডেক্সের একটি অ্যারে নেবে।
আমাদের ফাংশনটি দ্বিতীয় আর্গুমেন্টে নির্দিষ্ট ইনডেক্সগুলোতে থাকা value প্রপার্টি ডিলিট করবে।
উদাহরণ
কোডটি হবে -
const arr = [
{ value: 'some value' },
{
array: [
{ value: 'some value' },
{
array: [
{ value: 'some value' },
{ value: 'some value' },
],
},
{ value: 'some value' },
{
array: [
{ value: 'some value' },
{
array: [
{ value: 'delete me' },
{ value: 'some value' },
]
}
],
},
],
}
];
const keys = [1, 3, 1, 0];
const getKeys = (arr, keys) => {
const recursiveFind = (arr, level) => {
const res = [];
arr.forEach((el, ind) => {
if (keys[level] !== ind) {
return res.push(el);
};
if (level + 1 !== keys.length && el.array) {
res.push({ array: recursiveFind(el.array, level + 1) });
};
});
return res;
};
return recursiveFind(arr, 0);
};
console.log(JSON.stringify(getKeys(arr, keys), undefined, 4));
আউটপুট
কনসোলে আউটপুট হবে -
[
{
"value": "some value"
},
{
"array": [
{
"value": "some value"
},
{
"array": [
{
"value": "some value"
},
{
"value": "some value"
}
]
},
{
"value": "some value"
},
{
"array": [
{
"value": "some value"
},
{
"array": [
{
"value": "some value"
}
]
}
]
}
]
}
]