平铺数组结构转化为树形数组

147 阅读1分钟

一、原数组

平铺数据.jpg

二、实现方法

1.递归法

// 平铺转树形结构
export function transArrToTree(arr,pid=''){
  let newArr=[] //接收转化后的元素
  arr.forEach((item=>{
    // 如果pid为空 说明为第一层元素
    if(item.pid==pid){
      // 收集非一层元素
      let child=transArrToTree(arr,item.id) //收集pid=id的元素组成的数组
      if(child.length){
        item.children=child
      }
      // 将一层元素收集
      newArr.push(item)

    }
  }))
  return newArr
}

2.array-to-tree 第三方包

1.下载第三方包  yarn add array-to-tree
2.导入第三方包并定义转化函数导出
import arrToTree from 'array-to-tree'
export function tranArray(arr){
        return arrToTree(arr,{
         parentProperty:'pid', //父级pid
         customID:'id' //子级id
        
        })     

}