2013-08-02 93 views
1

我有以下JSON:刷新JSON后删除

"memberValidations": 
     [ 
      { 
       "field": "PRIMARY_EMAIL", 
       "errorCode": "com.endeavour.data.validation.PRIMARY_EMAIL", 
       "createdDateTime": null 
      }, 
      { 
       "field": "lastName", 
       "errorCode": "com.endeavour.data.validation.lastName", 
       "createdDateTime": null 
      }, 
     ] 

删除对象delete memberValidations[0];

我从memberValidations[0];期待姓氏但要未定义代替后?任何想法如何解决这个问题?

+0

您的JSON代码段无效,您错过了前导符/尾随符号'{}'。你似乎认为'memberValidations'是一个变量,根据我所能说的,事实并非如此。 – Halcyon

+0

这不是完整的JSON,仅供参考。 – RuntimeException

回答

6

使用delete将删除该数组中的项目,但它不会调整它如此有效,你仍然有指数0的项目,但它不再分配(undefined)。来自docs

当您删除数组元素时,数组长度不受影响。即使删除数组的最后一个元素,也是如此。

要完全删除项目,您还需要调整阵列的大小,例如

memberValidations.splice(0, 1) 
+0

是正确的,您通常使用'delete'从键/值散列中删除名称,例如'h = {a:1,b:2}',然后'删除h.a'或'删除h [“a”]'会让你有'h = {b:2}'。如果你想从数组中删除,拼接。如果你不想删除,你可以克隆和删除,或者使用下划线/ lodash的'_.without()' – deitch

+0

如预期的那样工作的很好,谢谢James! – RuntimeException