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

删除树结构中的空数组

作者: 全栈的猫南北 | 来源:发表于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 为空的元素

相关文章

  • JAVAScript数组原数组的改变与不改变的方法

    改变原数组: pop():删除数组中的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,...

  • 2019-12-17 刷题-1(数组)

    26 删除排序数组中的重复项 题目很简单,设置一个指针指向删除后数组结尾。需要注意判断数组为空的情况,否则会run...

  • 20171005

    1.array_pop(array) 删除数组中的最后一个元素。返回数组的最后一个值。如果数组是空的,或者非数组,...

  • 数组删除delete和splice的区别

    1.delete 删除 delete: 只是被删除的元素变成了 empty ,数组长度不变 empty:数组的空元...

  • JS学习笔记之数组操作

    shift() 删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined。 unshift() ...

  • JS数组

    一、数组方法汇总 shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined var ...

  • js是否改变原数组的常用方法归纳

    改变原数组的: shift:将第一个元素删除并且返回删除元素,空即为undefinedunshift:向数组开头添...

  • 2018-04-20

    Javascript 数组方法改变原数组的shift:将第一个元素删除并且返回删除元素,空即为undefined ...

  • 数组方法基础

    shift :删除原数组第一项,并返回删除元素的值,如果数组为空则返回undefined。 var a = [1,...

  • JS是否改变原数组的常用方法归纳

    改变原数组的: shift:将第一个元素删除并且返回删除元素,空即为undefined unshift:向数组开头...

网友评论

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

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