简单封装一个函数将列表型数据转树形数据结构

258 阅读1分钟

思路分析:

1.一级数据的相同点是pid为''
2.二级数据和一级数据的相同点是pid和一级数据的id相同
3.第一步先声明一个空数组
4.先筛选出一级数据
5.递归这个函数筛选出二级数据
6.筛选出二级数据赋值给有二级数据的一级
7.给arr添加数据并return返回

数据结构

image.png

image.png

// 封装函数将列表型数据转换成树形数据结构
// list:要转换的数据
// value:根数据
export function transListToTree(list, value) {
  console.log(list)
  // 声明一个空数组
  const arr = []
  // 循环这个数组
  list.forEach(item => {
    // 筛选
    if (item.pid === value) {
      // 重新调用这个函数
      const children = transListToTree(list, item.id)
      if (children.length > 0) {
        item.children = children
      }
      arr.push(item)
    }
  })
  return arr
}
transListToTree(depts, '')