美文网首页
递归清除数组每个元素下的children为空的数组

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

作者: gitJason | 来源:发表于2021-05-07 18:13 被阅读0次

前端工作中经常遇到需要递归处理数据的地方。
例如:当后端接口返回数据,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

相关文章

网友评论

      本文标题:递归清除数组每个元素下的children为空的数组

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