我有一棵像这样的树:
{
"nodes": [
{
"id":1,
"children":[
{
"id":3,
"children":[
{"id":4, "children":[]},
{"id":5, "children":[{"id":6, "children":[]}]}
]
},
{"id":2, "children":[]}
]
}
]
}
如何解析该树以将每个node
内部推children
入一个新数组?我想我需要递归解析它。你能帮忙吗?
输出应为:
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; }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句