如果为空,如何从对象中删除子对象

问题描述 投票:0回答:1

我是 javascript 和对象的新手,我需要通过在孩子为空时删除来操作该对象。

我可以使用哪个函数来删除 id 1701 的子项,因为它自己的子项是空的

我尝试过一些技巧,但对我来说不行

这是我原来的对象:

{
    "id": "1",
    "name": "root1",
    "children": [
        {
            "id": "1701",
            "name": "1701",
            "children": []
        },
        {
            "id": "1712",
            "name": "1712",
            "children": [
                {
                    "id": 153,
                    "name": "153"
                },
                {
                    "id": 156,
                    "name": "156"
                }
            ],
        }
    ],
}

目标是获得这个对象:

{
    "id": "1",
    "name": "root1",
    "children": [
        {
            "id": "1712",
            "name": "1712",
            "children": [
                {
                    "id": 153,
                    "name": "153"
                },
                {
                    "id": 156,
                    "name": "156"
                }
            ],
        }
    ],
}

你能帮我吗?

非常感谢

我已经尝试过每个,但我需要第二步,我迷路了......

javascript object
1个回答
0
投票

您正在寻找的是

filter()
-方法。

Array 实例的 filter() 方法创建给定数组的一部分的浅表副本,过滤为仅给定数组中通过所提供函数实现的测试的元素。

data = {
    "id": "1",
    "name": "root1",
    "children": [
        {
            "id": "1701",
            "name": "1701",
            "children": []
        },
        {
            "id": "1712",
            "name": "1712",
            "children": [
                {
                    "id": 153,
                    "name": "153"
                },
                {
                    "id": 156,
                    "name": "156"
                }
            ],
        }
    ],
}

let filteredData = data.children.filter(child => child.children.length > 0);
console.log(filteredData);

© www.soinside.com 2019 - 2024. All rights reserved.