需求
如果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)
返回结果
可看到 '二级 1-1' 和 '一级 3' 中的children已被删除
image.png
网友评论