tree树状结构数据处理
·
1、树形菜单添加序号(prop),比如 1-1/1-1-1/1-1-2 这样的
const setIndex = (data) => {
let queue = [...data];
let loop = 0;
while (queue.length > 0) {
loop++
[...queue].forEach((child, i) => {
queue.shift()
if (loop == 1) {
child.prop = i + 1 + "";
}
if (child.children && child.children.length > 0) {
for (let ci = 0; ci < child.children.length; ci++) {
child.children[ci].prop = child.prop + "-" + (ci + 1)
}
queue.push(...child.children)
}
})
}
return data;
}
2、只要最后一级数据数据
const filterLastTree = (treeList, newTreeList) => {
treeList.map((item, index) => {
let tempData: treeItem = {
label: item.label,
prop: item.prop,
};
if (item.children && item.children.length > 0) {
newTreeList.push(
...filterLastTree(item.children, []),
);
} else {
newTreeList.push(tempData);
}
});
return newTreeList;
};
调用:filterLastTree = (treeList, [])
3、完整树状结构数据重组
const filterTree = (treeList, newTreeList) => {
treeList.map((item, index) => {
let tempData: treeItem = {
label: item.label,
prop: item.prop,
children: [],
};
if (item.children && item.children.length > 0) {
filterTree(item.children, tempData.children);
}
newTreeList.push(tempData);
});
return newTreeList;
};
调用:filterTree (treeList, [])
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)