数组常见操作

// 扁平数据根据pid拼接成树形数据
 let arr = [
      { label: '安徽', id: '1', pid: null},
      { label: '合肥', id: '11', pid: '1'},
      { label: '肥东', id: '111', pid: '11'},
      { label: '芜湖', id: '12', pid: '1'},
      { label: '繁昌', id: '121', pid: '12'},

      { label: '浙江', id: '2', pid: null},
      { label: '杭州', id: '21', pid: '2'},
      { label: '西湖区', id: '211', pid: '21'},
      { label: '金华', id: '22', pid: '2'},
    ];
    /**
     * @description: 拼接树形数据
     * @param Array arr 扁平数组
     * @param String id 父级别id
     * @return []
     */
    function jointTree(arr, id) {
      const res = [];
      if (arr.length > 0) {
        arr.forEach((item) => {
          if (item.pid === id) {
            item['children'] = this.jointTree(arr, item.id);
            if (item.children.length) {
              item['children'] = item.children;
            }
            res.push(item);
          }
        });
      }
      return res;
    }

    console.log('--树形数据', jointTree(arr, null))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值