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;
}
var source = [{ id: 1, //id必须唯一 pid: 0, name: 'body' }, { id: 2, pid: 1,//父级id name: 'title' }, { id: 3, pid: 1, name: 'div' }, { id: 4, pid: 3, name: 'span' }]
var TreeData =toTree(source)
JS数组转树状结构
最新推荐文章于 2023-05-31 16:16:45 发布