通过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"
}
]
}
]
}
]
}
]热门推荐
10 生日祝福语简短而有深意
11 免费生日祝福语简短独特
12 老师节祝福语的简短
13 项目总生日祝福语简短
14 周二祝福语大全简短
15 工人生日祝福语简短
16 简短正能量生日祝福语
17 冬季祝福语大全 简短的
18 對好友毕业祝福语简短