gpt4 book ai didi

typescript - 遍历嵌套的 JSON 子对象

转载 作者:行者123 更新时间:2023-12-02 16:47:12 29 4
gpt4 key购买 nike

我有这个 JSON 负载,其中每个对象都包含一个 ID、名称和子项数组。这里我需要获取所有元素的 ID,包括根元素和所有嵌套的子元素。

{
"_id": "-1",
"_name": "root",
"_children": [
{
"_id": "1",
"_name": "Child 1",
"_children": [
{
"_id": "1-1",
"_name": "Child 1-1",
"_children": [
{
"_id": "1-1-1",
"_name": "Child 1-1-1",
"_children": [

]
}
]
},
{
"_id": "1-2",
"_name": "Child 1-2",
"_children": [

]
},
{
"_id": "1-3",
"_name": "Child 1-3",
"_children": [

]
}
]
},
{
"_id": "2",
"_name": "Child 2",
"_children": [
{
"_id": "2-2",
"_name": "Child 2-2",
"_children": [

]
}
]
}
]
}

我如何遍历它以获取所有子项和根的 ID 值?

这是我使用嵌套函数尝试过的方法,但它不起作用。

getNestedChildren(arr) {
var out = []
for(var i in arr[0].children) {
out.push(arr[i].id);
if(arr[i].children && arr[i].children.size() > 0) {
var children = this.getNestedChildren(arr[i].children)
}
}

最佳答案

您可以使用递归并通过引用修改“结果数组”。

例如,如果您的嵌套对象存储在变量 data 中,则:

function addNestedChildrenToArray(obj, resultArray) {
resultArray.push(obj._id);
obj._children.forEach(child => addNestedChildrenToArray(child, resultArray));
}

const resultArray = [];
addNestedChildrenToArray(data, resultArray);
// resultArray now contains the results
console.log(resultArray);

You can test it here: https://es6console.com/k6ehwu5p/

关于typescript - 遍历嵌套的 JSON 子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60090730/

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