根據索引從 JavaScript 中的巢狀陣列中移除專案
假設我們有一個這樣的巢狀物件陣列 -
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' },
]
},
],
},
],
}
];我們需要編寫一個 JavaScript 函式,該函式將第一個引數作為此類陣列,將第二個引數作為索引陣列。
我們的函式應當刪除所有由陣列(第二個引數)指定的索引上的 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"
}
]
}
]
}
]
}
]
廣告
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP