js utils

123 阅读1分钟
_handleToTreeData(data) {
    const ansTreeData = []
    let arrTemp
    const mpTemp = new Map()
    data.forEach((el) => {
      if (el.pid == null) {
        arrTemp = []
        mpTemp.set(el.id, arrTemp)
        ansTreeData.push({
          name: el.name,
          id: el.id,
          children: arrTemp,
        })
      } else {
        if (el.pid != null) {
          arrTemp = mpTemp.get(el.pid)
          const newArrtemp = []
          mpTemp.set(el.id, newArrtemp)
          arrTemp.push({
            name: el.name,
            id: el.id,
            pid: el.pid,
            children: newArrtemp
          })
        }
      }
    })
    arrTemp = null 
    return ansTreeData
  }