翻過高山走不出你
2023-07-20 10:40:20
我有以下結構:instance: {
children: [instance, instance ...]
}正如您所看到的,每個instance都有children數(shù)組,其中包含另一個實例,因此這種重復可以相對深入,直到到達最后一個嵌套子級。我需要迭代最上面/給定的每個子項instance并執(zhí)行一個簡單的if條件。但我不知道如何做到這一點,因為 的長度children可能會有所不同,而且我們需要檢查每個孩子的孩子等等......
1 回答
慕村9548890
TA貢獻1884條經(jīng)驗 獲得超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
提交
取消
