const data = [
{
name: 'a',
children: [
{ name: 'b', children: [{ name: 'e' }] },
{ name: 'c', children: [{ name: 'f' }] },
{ name: 'd', children: [{ name: 'g' }] },
],
},
{
name: 'a2',
children: [
{ name: 'b2', children: [{ name: 'e2' }] },
{ name: 'c2', children: [{ name: 'f2' }] },
{ name: 'd2', children: [{ name: 'g2' }] },
],
}
]
function getDeepFor(arr){
if(!arr.length){
return
}
let result = []
arr.forEach(item => {
if(item.children && item.children.length){
result.push(item.name)
let child = getDeepFor(item.children)
if(child && child.length){
result.push(...child)
}
}else{
result.push(item.name)
}
})
return result
}
function getSpanFor(arr){
if(!arr.length){
return
}
let result = []
const childrenList = []
arr.forEach(item => {
result.push(item.name)
item.children && childrenList.push(...item.children)
})
if(childrenList.length) {
result = [...result, ...getSpanFor(childrenList)]
}
return result
}
console.log(getSpanFor(data),'广度遍历--')