const rootList = [
{ id: 1, name: "父级", parentId: 0 },
{ id: 2, name: "子级", parentId: 1 },
{ id: 3, name: "子级", parentId: 1 }
]
function dataToTree(source, parentId = 0) {
let tree = [];
source.forEach((item) => {
if (item.parentId === parentId) {
item.children = dataToTree(source, item.id);
tree.push(item);
}
});
return tree;
}
let res = dataToTree(rootList)
const tree = function (source) {
let res = []
source.forEach(item => {
if (item.children) {
res.push(item, ...tree(item.children))
delete item.children
} else {
res.push(item)
}
})
return res
}
let result = tree(res)
console.log(result)
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步