递归清除数组每个元素下的children为空的数组

前端工作中经常遇到需要递归处理数据的地方。
例如:当后端接口返回数据,children为空时,使用 Element UI联级选择组件,会展示如下图:
前端需要将children为空的数组删除,此时需要使用递归。

01.png

需求,效果如下图:

02.png

封装函数 clearAllChildren.js

// 递归清除数组每个元素下的children为空的数组
const clearAllChildren = (items, childrenName = 'children') => {
  for (let i = 0; i < items.length; i++) {
    const item = items[i]
    // 当前对象存在children
    if (item && item[childrenName]) {
        // children为空数组时删除
      if (item[childrenName].length === 0) {
        delete item[childrenName]
      } else {
        // 递归当前children数组
        clearAllChildren(item[childrenName], childrenName)
      }
    }
  }
  return items
}

export default clearAllChildren
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容