let result = [
{
id: 1,
name: '深圳',
pid: '',
children: [
{
id: 3,
name: '宝安区',
pid: 1,
children: [
{
id: 4,
name: '石岩',
pid: 3
}
]
}
]
},
{
id: 2,
name: '广州',
pid: ''
}
]
// 使用递归的方法解决
1. 根据拿到的数据 确认哪些是第一层 先找到第一层的数据
2. 给找到的第一层数据加children 说明他们下面还有第二层或者第三层....数据
3. 将子级找出来 (通常子级有一个数据和父级的一个数据是一样的) 找出来后加到children中
function fn (arr,pid){
return arr.filter(item =>{
// 这里是找到第一层
if(item.pid===pid){
// 给第一层加上children 然后在用递归 调用方法
item.children= fn(arr,item.id)
return item
}
})
}
console.log(fn(result,''))
每日一练