js递归简单例子

最近在写遍历tree的所有节点,虽然elementui tree组件提供了filter方法遍历所有节点,但是还是想自己找办法遍历下,首次使用递归,记录下:

  数据定义  

      var docData = [{
            id: 123,
            label: 'a文档一',
            modelId: '1012',
            children: [{
                  id: 455,
                  label: 'a二级文档列表展示',
                  modelId: '9',
                  children: [{
                        id: 9,
                        label: 'a三级文档列表展示',
                        modelId: '1015',
                  }, {
                        id: 10,
                        label: '三级 1-1-2'
                  }]
            }]
      },
      {
            id: 132,
            label: 'b文档一',
            modelId: '58',
            children: [{
                  id: 555,
                  label: 'b二级文档列表展示',
                  modelId: '10',
                  children: [{
                        id: 91,
                        label: 'b三级文档列表展示',
                        modelId: '6',
                  }, {
                        id: 102,
                        label: 'b三级 1-1-2',
                        modelId: '1015',
                  }]
            }]
      }];

  递归方法,遍历所有节点,生成新数组  

 var abc = [];
      // 递归
      function traverse (data) {
            for (const key in data) {
                  var l = { id: data[key].id, label: data[key].label, modelId: data[key].modelId };
                  abc.push(l);
                  if (data[key].children) {
                        if (data[key].children.length > 0) {
                              traverse(data[key].children);
                        }
                  }
            }
      }
      traverse(docData);

  打印输出  

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值