构建树形结构方法一
function builderData(data, parentId) {
let mapData = new Map();
mapData.set(parentId, {});
data.forEach(item => {
mapData.set(item.id, item);
});
mapData.forEach((value, key) => {
let pId = value.parentId;
if (key != parentId) {
mapData.get(pId).children = mapData.get(pId).children || [];
mapData.get(pId).children.push(value);
}else{
mapData.get(key).children = []
}
});
return mapData.get(parentId).children
}
构建树形结构方法二
function builderData(data, parentId) {
let arr = [];
data.forEach(item => {
if(item.parentId == parentId){
let children = builderData(data, item.id);
item.children = children
arr.push(item)
}
})
return arr
}
拆分树形结构
function separateData(data) {
let arr = [];
data.forEach(item=>{
if(item.children.length > 0){
arr = arr.concat(separateData(item.children))
arr.push(item)
}else{
arr.push(item)
}
})
return arr
}