一维数组构建目录树(非递归)

平面表格数据构建目录树(非递归,速度快,不限制树层级)

    数据格式 ,根目录没有pid或pid为false, 子目录pid等于父级目录id

fliteTree (list = []) {
      const data = JSON.parse(JSON.stringify(list)) // 浅拷贝不改变源数据
      const result = []
      const map = {}
      data.forEach(item => {
        map[item.id] = item
        item.children = []
      })
      data.forEach(item => {
        const parent = map[item.pid]
        if (parent) {
          parent.children.push(item)
        } else {
          result.push(item)
        }
      })
      return result
    }

 

posted @ 2021-07-28 18:35  躺着  阅读(90)  评论(0编辑  收藏  举报