js如何将下面数组按照下面值输出name
['0', '1', '0-1', '1-1', '1-1-1']
var arr = [
{id:1,name:'0',children:[{id:2,name:'0-1'}]},
{id:3,name:'1',children:[{id:4,name:'1-1',children:[{id:5,name:'1-1-1'}]}]}
]
['0', '1', '0-1', '1-1', '1-1-1']
var arr = [
{id:1,name:'0',children:[{id:2,name:'0-1'}]},
{id:3,name:'1',children:[{id:4,name:'1-1',children:[{id:5,name:'1-1-1'}]}]}
]
这种输出顺序其实就是用到数据结构中,对树的广度优先遍历算法:
// 广度优先遍历
function broadErgodic(treeArr) {
const arr = []
while(treeArr.length > 0) {
const node = treeArr.shift()
arr.push(node.name)
node.children && treeArr.push(...node.children)
}
return arr
}