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


需求

如果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)

 



转载自::https://www.jianshu.com/p/555a176bd8ee


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM