javascript - 如何遍历深度嵌套对象中的每个 object.child?
问题描述
我有以下结构:
instance: {
children: [instance, instance ...]
}
正如您所看到的,每个数组中instance
都有children
另一个实例,因此这种重复可能会比较深,直到到达最后一个嵌套子节点。我需要遍历最上面/给定的每个孩子instance
并执行一个简单的if
条件。但我无法弄清楚如何做到这一点,因为长度children
可能会有所不同,而且我们需要检查每个孩子的孩子等等......
解决方案
您可以递归地遍历所有实例:
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
推荐阅读
- visual-studio-2019 - VS2019 测试资源管理器未使用 specflow+runner 为 netcoreapp3.1 项目运行测试
- typescript - 为什么 TypeScript 3.7.5 在键入接收数组的函数时会抛出错误?
- asp.net-core - 如何使用 ChallengeAsync 重定向到 asp.net 核心中的中间件内的登录页面
- kubernetes - Kubernetes 副本集和数据库
- python - 在 Python 中传递要作为参数执行的函数
- loops - 如何捕获可变文件内容?
- oauth-2.0 - 在 Outlook 插件中实施 oAuth2 身份验证
- javascript - 使用 JQuery 从轮播中删除按钮单击时的照片
- python - 如何忽略 Pandas 重组字符串索引?
- python - 是否可以在 Python 中动态创建数据框?