可以使用递归算法来遍历深度嵌套的对象数组,并生成新的数组。下面是一个示例代码,假设有一个深度嵌套的对象数组,每个对象包含id和children属性,我们要获取所有id组成的新数组。
// 原数组
const data = [
{id: 1, children: [
{id: 2, children: [
{id: 3},
{id: 4},
]},
{id: 5},
]},
{id: 6},
];
// 递归函数
function getIds(data) {
let result = [];
for (let i = 0; i < data.length; i++) {
result.push(data[i].id);
if (data[i].children && data[i].children.length > 0) {
result = result.concat(getIds(data[i].children));
}
}
return result;
}
// 调用递归函数
const ids = getIds(data);
console.log(ids); // [1, 2, 3, 4, 5, 6]
在递归函数中,我们首先将当前对象的id属性加入结果数组中,然后判断是否存在children属性,如果存在则递归调用getIds函数,并将其返回值追加到结果数组中。最终返回结果数组。