我具有以下结构:
instance: {
children: [instance, instance ...]
}
您可以看到每个instance
的{{1}}数组中都有另一个实例,因此,此重复可能会进行得比较深,直到到达最后一个嵌套子级为止。我需要遍历最高/给定children
的每个孩子,并执行简单的instance
条件。但是由于if
的长度可能会有所不同,所以我不知道该怎么做,此外,我们需要检查每个孩子的孩子,依此类推...
答案 0 :(得分:2)
您可以递归地迭代所有实例:
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