为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻过高山走不出你 2023-07-20 10:40:20
我有以下结构: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


查看完整回答
反对 回复 2023-07-20
  • 1 回答
  • 0 关注
  • 58 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信