let treeData = [{
id: 1,
name: '11',
pId: ''
},
{
id: 2,
name: '22',
pId: 1
},
{
id: 3,
name: '33',
pId: 2
},
{
id: 4,
name: '44',
pId: ''
}];
// 递归处理
function changeTree(data, pId = '') {
// 定义最后返回的数组
let arrs = [];
// 执行循环
for (let i = 0; i < data.length; i++) {
// 判断pId是否等于当前循环行的pId
let item = data[i];
if (pId === item.pId) {
// 则递归执行
let children = changeTree(data, item.id);
if (children.length > 0) {
item.children = children;
}
arrs.push(item); // 将最后处理完成的数据放入最后的数组
}
}
return arrs;
}
console.log(changeTree(treeData))
console