【问题标题】:Javascript Delete recursive property within an array/object [duplicate]Javascript删除数组/对象中的递归属性[重复]
【发布时间】:2018-03-28 01:54:47
【问题描述】:

我有一个如下所示的对象;

{
    "containers": [
        {
            "fields" : {
                "fields": {
                    "fields": {},
                    "prop1": {},
                    "prop2": {}
                },
                "prop1": {},
                "prop2": {}
            }
        },
        {
            "fields" : {
                "fields": {
                    "fields": {},
                    "prop1": {},
                    "prop2": {}
                },
                "prop1": {},
                "prop2": {}
            }
        }       
    ]
}

现在“字段”在“字段”中重复出现。我希望删除所有内部“字段”。

所以应该更新到下面;

{
    "containers": [
        {
            "fields" : {
                "prop1": {},
                "prop2": {}
            }
        },
        {
            "fields" : {
                "prop1": {},
                "prop2": {}
            }
        }       
    ]
}

我该怎么做?是否可以在 forEach 循环或任何其他方式迭代“容器”时进行删除?

PS:我想修复循环依赖(不检测是否存在)

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    迭代属性可以这样做:

    for (var property in object) {
        if (object.hasOwnProperty(property)) {
            // do stuff
        }
    }
    

    遍历属性需要额外的 hasOwnProperty 检查。这是必要的,因为对象的原型包含对象的附加属性,这些属性在技术上是对象的一部分。在这里你冷也检查你想要的任何条件。

    【讨论】:

    • 如何在迭代时删除?
    猜你喜欢
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 2020-07-15
    相关资源
    最近更新 更多