如何迭代深层嵌套对象中的每个 object.child ?

我有以下结构:

instance: {
  children: [instance, instance ...]
}

正如您所看到的,每个instance都有children数组,其中包含另一个实例,因此这种重复可以相对深入,直到到达最后一个嵌套子级。我需要迭代最上面/给定的每个子项instance并执行一个简单的if条件。但我不知道如何做到这一点,因为 的长度children可能会有所不同,而且我们需要检查每个孩子的孩子等等......


翻过高山走不出你
浏览 85回答 1
1回答

慕村9548890

您可以递归地迭代所有实例: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);输出:ParentChild 1Child 2Grandchild 1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript