<script>
let allData = [
{name: "文件夹1", pid: 0, id: 1},
{name:"文件1", pid: 1, id: 1000},
{name:"文件夹1-1", pid:1, id: 2},
{name:"文件2", pid: 2, id: 1001},
]
let treeMapList = allData.reduce((memo, current) => {
memo[current["id"]] = current
return memo
},{})
let list = allData.reduce((arr, current) => {
let parentId = current.pid;
let parent = treeMapList[parentId];
if(parent) {
parent.children?parent.children.push(current):parent["children"] = [current]
}else{
if(parentId == 0) {
arr.push(current)
}
}
return arr
}, [])
console.log(allData, 'allData')
console.log(list, "list")
</script>
不太清楚为什么改变parent会影响到allData