前端工作中经常遇到需要递归处理数据的地方。
例如:当后端接口返回数据,children为空时,使用 Element UI联级选择组件,会展示如下图:
前端需要将children为空的数组删除,此时需要使用递归。
需求,效果如下图:
封装函数 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
网友评论