将扁平数据变成二维数组:
<template>
<div>
</div>
</template>
<script>
import { getTreeList } from './api'
export default {
async mounted () {
let { data } = await getTreeList();
// console.log(data);
// 1)扁平数据如何变成多层数据 递归数据
let AllData = [...data.parent, ...data.child];
// console.log(AllData);
//变成映射表
let treeMapList = AllData.reduce((memo, current) => {
memo[current["id"]] = current;
return memo;
}, {})
// console.log(treeMapList)
let result = AllData.reduce((arr, current) => {
let pid = current.pid;
let parent = treeMapList[pid];
if (parent) {
parent.children ? parent.children.push(current) : parent.children = [current]
} else if (pid === 0) { //这是根文件夹
arr.push(current);
}
return arr;
}, [])
console.log(result)
}
}
</script>