接收的数据父级和子集都是平铺的,需要把子集的数据嵌套到父级内部
// id:当前数据的id,pid:当前数据的父级id
// list:数据列表,rootValue:根节点的pid
transListToTreeData(list, rootValue) {
var arr = []
// 遍历数组 一条一条的去找
// 从哪里开始找 我怎么知道找到的是对的呢?
// 树遍历一般先找到根
// 如果pid为空 表示他是根, 他是第一级的节点
list.forEach(item => {
if (item.pid === rootValue) {
// 认为找了第一级的节点 找pid等于当前item.id的节点
const children = transListToTreeData(list, item.id) // 找到的是子节点的数组
if (children.length) {
// 如果长度大于0 表示我有孩子
item.children = children
}
arr.push(item) // 当前节点
}
})
return arr
}