三十秒教会你 平铺数据 转成树型数据

112 阅读1分钟
const arr = [
  { id: '2b', pid: '', name: '人事部' },
  { id: '2c', pid: '', name: '财务部' },
  { id: '2d', pid: '2c', name: '财务核算部' },
  { id: '2e', pid: '2c', name: '税务管理部' },
  { id: '2f', pid: '2c', name: '薪资管理部' }
]
export function tranList(arr) {
  const treeArr = []
  // 帮助快速确定上级
  const map = {}
  arr.forEach(item => {
    item.children = []
    map[item.id] = item
  })
  console.log(map)
  arr.forEach(item => {
  // 对arr进行循环,对每一个元素item,
    const pItem = map[item.pid]
    if (pItem) {
      pItem.children.push(item)
    } else {
      treeArr.push(item)
    }
  })
  return treeArr
}
console.log(tranList(arr))