数组中多层嵌套对象,怎么递归取得,某id 对象的路径
const arr =[
{ id:'1',
title:'a',
children:[
{id:'33',
title:'axx',
children:[{ id:'121111',title:'hh'},]
},
{id:'34',title:'xxddf',}
]
},
{ id:'2',title:'bxx'}
// 略...
]
// 找出 id为 121111 对象的路径, 返回一个数组: [第一层的 title,第三层的title ,第n层的 title ,自已的 title]
下面这样写不行,只能找到自已这层,没有父级路径
function pathCompute(arr, key, path = []){
for( let i = 0, len = arr.length; i < len; i++){
path.push(arr[i].title)
if( arr[i].key === key){
console.log('找到了', path)
return path
} else if(arr[i].children && arr[i].children.length >= 1){
pathCompute(arr[i].children, key, path)
} else {
path = [] // 没找到就清空数组,下循环重新写路径,但这样写不行
}
}
}