json 递归算法去掉个别的选项业务

    let results = {
        data: [{
          name: 'name1',
          type: 't1'
        }, {
          name: 'name2',
          type: 't2',
          children: [{
            name: 'name3',
            type: 't3'
          }, {
            name: 'name4',
            type: 't1',
            children: [{
              name: 'n6',
              type: 't2'
            }]
          }]
        }, {
          name: 'name5',
          type: 't3'
        }]
      }
      const fun1 = (obj) => {
        if (obj.data) {
          let newObj = obj.data.flatMap(item => {
            if (item.type === 't1') {
              return []
            } else if (item.children) {
              return {
                ...item,
                children: fun1(item.children)
              }
            } else {
              return item
            }
          })
          return {
            data: newObj
          }
        } else if (obj.children) {
          return fun1(obj.children)
        } else {
          return obj.flatMap(item => {
            if (item.type === 't1') {
              return []
            } else if (item.children) {
              return {
                ...item,
                children: fun1(item.children)
              }
            } else {
              return item
            }
          })
        }
      }

      let filted = fun1(results)
      console.log(`${JSON.stringify(filted, null, 2)}`)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值