let source = [{name: '基金概况',pid: 1,id: 11,},
{name: '基金介绍',pid: 11,id: 111,},
{name: '基金经理',pid: 111,id: 1111,},
{name: '基金回报',pid: 1,id: 12,},
{name: '业绩表现',pid: 12,id: 112,}
]
function toTree(data) {
let result = []
if (!Array.isArray(data)) {
return result
}
data.forEach(item => {
delete item.children;
});
let map = {};
data.forEach(item => {
map[item.id] = item;
});
data.forEach(item => {
let parent = map[item.pid];
if (parent) {
(parent.children || (parent.children = [])).push(item);
} else {
result.push(item);
}
});
return result;
}
let tree = toTree(source)
console.log(tree)
console