algoritmo recursivo json para remover negócios de opções individuais

    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)}`)

Acho que você gosta

Origin blog.csdn.net/qq_38946996/article/details/132488821
Recomendado
Clasificación