如何用JS实现对树形结构数组广度优先遍历?
广度优先就是将同层级节点遍历完后,再遍历下一级节点,重复这样工作,需要结合循环实现。如:将数组 arr 按照这个顺序输出 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'}]}]}
]
代码实现:
// 广度优先遍历
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
}