美文网首页
删除树结构中的空数组

删除树结构中的空数组

作者: 全栈的猫南北 | 来源:发表于2023-10-22 16:15 被阅读0次

    遍历删除数组中所有元素为 dept 是1 且没有children 字段的 或者 children 为空的元素

    调用

        this.parent_data = tree;
        this.removeEmptyChildren(tree);
    

    如果删除的元素是当前遍历的元素,需要向前移动一位,否则会跳过该元素

    递归遍历删除方法

        removeEmptyChildren(data) {
                    for (let i = data.length - 1; i >= 0; i--) {
                        const item = data[i];
                        if (item.children) {
                            this.removeEmptyChildren(item.children);
                            if (item.dept === "1" && item.children.length === 0) {
                                console.log(data[i].label);
                                data.splice(i, 1);
                            }
                        } else if (item.dept === "1") {
                            console.log(data[i].label);
                            data.splice(i, 1);
                        }
                    }
                },
    

    原数据树

    [{
        "account": "",
        "children": [{
            "account": "",
            "dept": "1",
            "id": "122049393-0101",
            "label": "智联",
            "phone": "",
            "pid": "122049393-01",
            "sex": ""
        }, {
            "account": "",
            "children": [{
                "account": "",
                "dept": "1",
                "id": "122049393-010201",
                "label": "摄像机海淀区海康233",
                "phone": "",
                "pid": "122049393-0102",
                "sex": ""
            }, {
                "account": "",
                "children": [{
                    "account": "",
                    "dept": "1",
                    "id": "122049393-01020201",
                    "label": "哈哈哈哈",
                    "phone": "",
                    "pid": "122049393-010202",
                    "sex": ""
                }],
                "dept": "1",
                "id": "122049393-010202",
                "label": "摄像机海淀区大华243",
                "phone": "",
                "pid": "122049393-0102",
                "sex": ""
            }],
            "dept": "1",
            "id": "122049393-0102",
            "label": "摄像机北京市组织",
            "phone": "",
            "pid": "122049393-01",
            "sex": ""
        }, {
            "account": "",
            "children": [{
                "account": "",
                "dept": "1",
                "id": "122049393-010301",
                "label": "哈哈",
                "phone": "",
                "pid": "122049393-0103",
                "sex": ""
            }],
            "dept": "1",
            "id": "122049393-0103",
            "label": "摄像机河南",
            "phone": "",
            "pid": "122049393-01",
            "sex": ""
        }],
        "dept": "1",
        "id": "122049393-01",
        "label": "智联总部演示",
        "phone": "",
        "pid": "000000",
        "sex": ""
    }]
    JS:遍历删除上面数组中所有元素为 dept 是1 且没有children 字段的 或者 children 为空的元素
    

    相关文章

      网友评论

          本文标题:删除树结构中的空数组

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