2013-08-02 123 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