树形结构和平铺结构的转换
1. 前言
不论是在实际的业务还是在面试中,博主都遇到了这样的一个需求。
将一个树形结构的数据转换成平铺的数组,或者将平铺的数组装换成树形结构,因此在这里记录一下如何实现这种转换的思想。
假设存在以下数据,其中 tree 是一个树形结构的数据,从外到内层级结构;arr 是树形结构的数组平铺,其中 pid 指在树形结构中上一层级的 id 值。
const tree = [{
id: 1,
name: '北京',
children: [{
id: 11,
name: '朝阳',
children: [{ id: 111, name: '朝阳1号' }]
}, {
id: 12,
name: '海淀',
children: [{ id: 121, name: '海淀1号' }]
}]
},{
id: 2,
name: '上海',
children: [{
id: 21,
name: '浦东',
children: [{ id: 211, name: '浦东1号' }]
},
{
id: 22,
name: '虹口',
children: [{ id: 221, name: '虹口1号' }]
}]
}];
const arr = [
{ pid: null, id: 1, name: '北京' },
{ pid: 1, id: 11, name: '朝阳' },
{ pid: 11, id: 111, name: '朝阳1号' },
{ pid: 1, id: 12, name: &