/*
id: 不能重复
pid: pid代表父节点的id是 pid:0 代表是第一层的节点
*/
// 模拟数据
let dataList = [
{
title: 'f0',
id: '1',
pid: '0',
},
{
title: 'f01',
id: '2',
pid: '0',
},
{
title: 'f02',
id: '3',
pid: '1',
},
{
title: 'f03',
id: '4',
pid: '1',
},
{
title: 'f04',
id: '5',
pid: '2',
},
{
title: 'f05',
id: '6',
pid: '2',
},
{
title: 'f06',
id: '7',
pid: '2',
}
];
// 树状数据处理函数
let rootMenus = [];
let map = {};
dataList.forEach(resource => {
resource.children = [];
map[resource.id] = resource;
if (resource.pid == 0) {
rootMenus.push(resource);
} else {
if (map[resource.pid]) {
map[resource.pid].children.push(resource)
} else {
throw new Error(`当前循环的数据pid=${resource.pid}有错误`);
}
}
})
console.log(rootMenus)
后台返回的数据变树状数据处理
最新推荐文章于 2021-07-29 17:31:11 发布