gpt4 book ai didi

javascript - 动态对象迭代 - javascript

转载 作者:行者123 更新时间:2023-11-30 19:57:40 25 4
gpt4 key购买 nike

我有一个 json 对象,需要对其进行迭代,我可以将迭代用作函数,但想看看是否有更简单的方法。对象如下图:

obj = [
{
name: 'FolderA',
child: [
{
name: 'FolderB',
child: [
{
name: 'FolderC0',
child: [],
},
{
name: 'FolderC1',
child: [],
}
]
}
],
},
{
name: 'FolderM'
child: []
}
]

在某些事件中我得到了水平,比如

level = "0-0-1"

我拆分得到 [0, 0, 1]意思是,第 0 个索引,嵌套的第 0 个索引和进一步嵌套的第 1 个索引,我得到的是:

obj[0][0][1], 

但是由于嵌套结构的深度是未知的,所以我希望上面的内容是动态生成的,像这样:

obj + [0] + .children[0] + .children[1], 

不确定这是否可以完成,但如果可以,请告诉我,否则我将不得不使用递归函数。谢谢

最佳答案

您可以拆分字符串,然后对索引数组使用 reduce:

const arr = [
{
name: 'FolderA',
child: [
{
name: 'FolderB',
child: [
{
name: 'FolderC0',
child: [],
},
{
name: 'FolderC1',
child: [],
},
],
},
],
},
{
name: 'FolderM',
child: [],
},
];
const getObject = (arr, path) =>
path
.split('-')
.reduce((result, key) => result.child[key], {
child: arr,
});

console.log(getObject(arr, '0-0-1'));

关于javascript - 动态对象迭代 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53760908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com