Javascript删除数组/对象中的递归属性

时间:2017-10-16 13:56:20

标签: javascript jquery

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

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

现在"字段"在#34;字段"内重复出现。我想要所有的内部"字段"即将被删除。

所以它应该更新到下面;

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

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

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

1 个答案:

答案 0 :(得分:0)

迭代属性可以这样做:

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

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