我有以下结构:instance: {
children: [instance, instance ...]
}正如您所看到的,每个instance都有children数组,其中包含另一个实例,因此这种重复可以相对深入,直到到达最后一个嵌套子级。我需要迭代最上面/给定的每个子项instance并执行一个简单的if条件。但我不知道如何做到这一点,因为 的长度children可能会有所不同,而且我们需要检查每个孩子的孩子等等......
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
您可以递归地迭代所有实例:
function iterate(instance) {
for (let child of instance.children) {
iterate(child);
}
}
例子:
instance = {
name: 'Parent',
children: [{
name: 'Child 1',
children: []
}, {
name: 'Child 2',
children: [{
name: 'Grandchild 1',
children: []
}]
}]
};
function iterate(instance, f) {
if (f)
f(instance.name);
for (let child of instance.children) {
iterate(child, f);
}
}
iterate(instance, console.log);
输出:
Parent
Child 1
Child 2
Grandchild 1
添加回答
举报
0/150
提交
取消