树形数据整合

function getTreeS() {
      const time = new Date().getTime()
      treeS(treeData)
      const timeEnd = new Date().getTime()
      console.log((timeEnd - time) + 'ms')
      console.log(tree(treeData))
    }
                代码-

 

const treeData = [
      { id: 1, pid: 0, path: '/1'},
      { id: 2, pid: 1, path: '/2'},
      { id: 3, pid: 1, path: '/3'},
      { id: 4, pid: 1, path: '/4'},

      { id: 5, pid: 0, path: '/5'},
      { id: 6, pid: 5, path: '/6'},
      { id: 7, pid: 5, path: '/7'},
      { id: 8, pid: 6, path: '/8'},
      { id: 9, pid: 6, path: '/9'},
      { id: 10, pid: 7, path: '/10'},
      { id: 11, pid: 7, path: '/11'},
      { id: 12, pid: 8, path: '/12'},
      { id: 13, pid: 12, path: '/13'},
      { id: 14, pid: 13, path: '/14'},
      { id: 15, pid: 14, path: '/15'},

      { id: 16, pid: 0, path: '/16'},
      { id: 17, pid: 16, path: '/17'},
      { id: 18, pid: 16, path: '/18'},
      { id: 19, pid: 16, path: '/19'},
      { id: 20, pid: 16, path: '/20'}
    ]
                          代码二

 

function treeS(data, pid = 0){
      const newData = data.filter(function (item) {
        return item.pid === pid
      })
      data = data.filter(function (item) {
        return item.pid !== pid
      })
      for (let i = 0; i < newData.length; i++) {
        const rtData = treeS(data, newData[i].id)
        if (rtData && rtData.length > 0) {
          console.log(rtData)
          newData[i].children = rtData
        }
      }
      return newData
    }
                       代码三

 

一。树形数据整合。

代码一::为时间测试代码。

代码二:为测试数据。

代码三: 为整合树形数据的方法。

性能:120条数据大约需要300ms-400ms左右。(如果有更好的方法,欢迎留言!)

 

二。主要使用技术。

      1。使用递归调用。

      2。使用 filter 方法用于过滤数组。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值