js剔除树形结构数组中为空或指定的字段,删除一级数组中的空元素

1,361 阅读1分钟

需求说明:后端传来的数据结构为树形结构,其中的child字段有空数组的情况, element中el-cascader级联组件children字段为空导致展示已下一级空数据

思路: 循环找到children为空字段(此处实际项目是child字段), 考虑到树形结构中子级可能还会有children字段需用递归处理

源码

delChildren(arr) {
	let children = arr
	for (let i = children.length; i--; i > 0) {
		if (children[i].child) {
			if (children[i].child.length) {
				this.delChildren(children[i].child)
			} else {
				delete children[i].child
			}
		}
	}
	return arr
}

删除一级数组中字段为空索引元素

场景说明:表格列表中预览图片时滑动查看下一张时后端链接字段为空,导致有空白预览

需求:不展示空白预览图片

思路:找到数组中link为空的索引删除该项,因为是一级数组故不用递归

源码

deleteChildren(arr: any) {
        const childs = arr
        for (let i = childs.length; i--; i > 0) {
            if (childs[i].cr_link.length <= 0) {
                childs.splice(i, 1)
            }
        }
        return arr
    }