遍历树结构,当节点的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

posted @ 2020-10-20 17:24  林被熊烟岛  阅读(1128)  评论(0编辑  收藏  举报