let obj = [{
id: 1,
name: ‘顶级1‘,
pid: 0
}, {
id: 2,
name: ‘顶级1 第二级1‘,
pid: 1
}, {
id: 3,
name: ‘顶级1 第二级2‘,
pid: 1
}, {
id: 4,
name: ‘第二级1 第三级1‘,
pid: 2
}, {
id: 5,
name: ‘第二级2 第三级2‘,
pid: 3
}, {
id: 6,
name: ‘第三级1 第四级‘,
pid: 4
}, {
id: 7,
name: ‘第五级‘,
pid: 6
}, {
id: 8,
name: ‘第六级‘,
pid: 7
}, {
id: 9,
name: ‘第7级‘,
pid: 8
}, {
id: 10,
name: ‘第8级‘,
pid: 9
}, {
id: 11,
name: ‘顶级2‘,
pid: 0
}];
function convert(data, pid) {
let convertData = [];
data.forEach(item => {
if (item.pid == pid) {
convertData.push(item);
convertChild(data, item, item.id);
}
});
return convertData;
}
function convertChild(arr, parentItem, pid) {
parentItem.children = parentItem.children ? parentItem.children : [];
arr.forEach(item => {
if (item.pid == pid) {
parentItem.children.push(item);
convertChild(arr, item, item.id);
}
});
return parentItem.children;
}
let aaaa = convert(obj, 0);
console.log(aaaa)
原文:https://www.cnblogs.com/mrt-yyy/p/13528051.html