2014-10-20 34 views
-2

[對象,對象,目標,對象]如何通過鍵值刪除目標json?

Object{ 
     id:33, 
     val:'a' 
     }, 
Object{ 
     id:56, 
     val:'b' 
     }, 
Object{ 
     id:77, 
     val:'a' 
     }, 
Object{ 
     id:89, 
     val:'d' 
     } 

現在我想刪除的對象其中id = 56

我該怎麼辦,使用JS?

有我想要的結果。

[對象,對象,對象]

Object{ 
     id:33, 
     val:'a' 
     }, 
Object{ 
     id:77, 
     val:'a' 
     }, 
Object{ 
     id:89, 
     val:'d' 
     } 

感謝。

+1

搜索該元素並刪除它? – 2014-10-20 05:29:21

+0

[JavaScript Array Delete Elements]的可能重複(http://stackoverflow.com/questions/500606/javascript-array-delete-elements) – Adam 2014-10-20 05:30:35

+0

首先,您需要從數組中搜索id = 56的對象,然後使用splice( )刪除對象的數組形式, – 2014-10-20 05:31:02

回答

0

如何使用刪除?請注意索引順序不會因此而被保留。

var text = '{"objects" : [{ "id":33, "val":"a"}, { "id":56, "val":"b"}, { "id":77, "val":"c"}, { "id":89, "val":"d"}]}'; 
var jsonData = JSON.parse(text); 
for (var i = 0; i < jsonData.objects.length; i++) { 
    var object = jsonData.objects[i]; 
    if(object.id == 56) { 
     delete jsonData.objects[i]; 
    } 
} 

如果您想預先保存索引順序,請使用下面的代碼。

var text = '{"objects" : [{ "id":33, "val":"a"}, { "id":56, "val":"b"}, { "id":77, "val":"c"}, { "id":89, "val":"d"}]}'; 
var jsonData = JSON.parse(text); 
for (var i = 0; i < jsonData.objects.length; i++) { 
    var object = jsonData.objects[i]; 
    if(object.id == 56) { 
     jsonData.objects.splice(i, 1); 
    } 
}