/**
* 1.遍历:找出id == pid的项
* 2.遍历自己找自己:开辟出一个独立的空间 用于自己对比自己
* 3.找出一项符合id == pid的项目 运用组合删除思想 组合完成则删除
* 4.遍历一次只能实现一次,所以要一直遍历,直到不存在id == pid的情况出现
**/
const arr = [ {
id: 2,
pid: 0,
name: '0-2'
}, {
id: 3,
pid: 2,
name: '2-3'
}, {
id: 5,
pid: 2,
name: '2-5'
}, {
id: 6,
pid: 0,
name: '0-6'
}, {
id: 7,
pid: 6,
name: '6-7'
}, {
id: 8,
pid: 6,
name: '6-8'
}, {
id: 5,
pid: 3,
name: '3-5'
} ]
const ArrFn = ( arr ) => {arr.map( ( item ) => {
arr.map( ( item1, i ) => {
if ( item.id == item1.pid ) {
if ( item.children ) {
item.children.push( item1 )
arr.splice( i, 1 )
ArrFn( arr )
return item
} else {
item.children = []
}
} else {
return
}
} )
} )
return arr
}
ArrFn( arr )
console.log( ArrFn( arr ) )