美文网首页
遍历树结构,当节点的children为空时,删除children

遍历树结构,当节点的children为空时,删除children

作者: 前端青音 | 来源:发表于2019-11-08 18:06 被阅读0次

    需求

    如果children为空数组,则删除children

    数据结构

    let arr2=[{
              label: '一级 1',
              children: [{
                label: '二级 1-1',
                children: []
              }]
            }, {
              label: '一级 2',
              children: [{
                label: '二级 2-1',
                children: [{
                  label: '三级 2-1-1'
                }]
              }, {
                label: '二级 2-2',
                children: [{
                  label: '三级 2-2-1'
                }]
              }]
            }, {
              label: '一级 3',
              children: []
            }]
    

    函数

     // children为[],则删除children键
      function deleteChildren(arr) {
          let childs = arr
          for (let i = childs.length; i--; i > 0) {
            if (childs[i].children) {
              if (childs[i].children.length) {
                this.deleteChildren(childs[i].children)
              } else {
                delete childs[i].children
              }
            }
          }
          return arr
        }
    

    调用

    let arrNew = deleteChildren(arr2)
    console.log(arrNew)
    

    返回结果

    可看到 '二级 1-1' 和 '一级 3' 中的children已被删除


    image.png

    相关文章

      网友评论

          本文标题:遍历树结构,当节点的children为空时,删除children

          本文链接:https://www.haomeiwen.com/subject/fmewbctx.html