2017-10-16 132 views
0

我有一个对象,如下所示;Javascript删除数组/对象中的递归属性

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

现在“字段”在“字段”内部重复。我希望所有的内部“领域”被删除。

所以它应该更新到下面;

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

我该怎么做?是否可以在forEach循环或其他任何方式遍历“容器”时执行删除操作?

PS:我想解决的cicrcular依赖(如果它是不是有检测)

回答

0

迭代特性可以这样待

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

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

+0

我如何在迭代时删除? – testndtv