我有一棵像这样的树:
{
"nodes": [
{
"id":1,
"children":[
{
"id":3,
"children":[
{"id":4, "children":[]},
{"id":5, "children":[{"id":6, "children":[]}]}
]
},
{"id":2, "children":[]}
]
}
]
}
如何解析这棵树,将 children
内的每个 node
插入一个新数组?我想我需要递归地解析它。你能帮忙吗?
输出应该是这样的:
let array = [
{"id":1},
{"id":2},
{"id":3},
{"id":4},
{"id":5},
{"id":6},
]
最佳答案
您可以采用迭代和递归方法。如果您想获得有序的结果,您可以添加排序。
function getValues(array) {
return array.reduce((r, { id, children }) => [...r, { id }, ...getValues(children)], []);
}
var data = { nodes: [{ id: 1, children: [{ id: 3, children: [{ id: 4, children: [] }, { id: 5, children: [{ id: 6, children: [] }] }] }, { id: 2, children: [] }] }] };
console.log(getValues(data.nodes));
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 如何处理JSON树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56557350/