function handleTree(data, id, parentId, children){
let config = {
id: id || 'id',
parentId: parentId || 'pid',
childrenList: children || 'children'
};
var childrenListMap = {};
var nodeIds = {};
var tree = [];
data.forEach(function(d){
let parentId = d[config.parentId];
if (!childrenListMap[parentId]) {
childrenListMap[parentId] = [];
}
nodeIds[d[config.id]] = d;
childrenListMap[parentId].push(d);
})
data.forEach(function(d){
let parentId = d[config.parentId];
if (nodeIds[parentId] == null) {
tree.push(d);
}
})
tree.forEach(function(t){
adaptToChildrenList(t);
})
function adaptToChildrenList(o) {
if (childrenListMap[o[config.id]] != null) {
o[config.childrenList] = childrenListMap[o[config.id]];
}
if (o[config.childrenList]) {
o[config.childrenList].forEach(function(c){
adaptToChildrenList(c);
})
}
}
return tree;
}
树形结构数据处理
最新推荐文章于 2023-10-13 17:30:23 发布