我有一個JavaScript數組,其中包含一些具有某些Id的對象和數組。我想要的是將數組中的對象與id數組進行比較,如果在對象中找到任何id,我想從數組中移除該元素。這樣做的結果顯示未定義的刪除元素。刪除JavaScript數組元素顯示未定義
var data = [{"name": "John_Smith","val":"3","id":"2"},{"name": "Peter_Adams","val":"2","id":"3"},{"name": "Priya_Shetye","val":"1","id":"4"},{"name": "Sara_Brown","val":"4","id":"5"}]
var arr = ["2","5"];
for (var i = 0; i < data.length; i++) {
for(var j=0;j<arr.length;j++){
if (arr[j]==data[i].id) {
delete data[i];
}
}
}
結果顯示[undefined,object object,object object,undefined]
。有沒有辦法只得到[object object,object object]
?
您刪除的對象。但是,您尚未從陣列中刪除項目。根據@JeffMercado提供的文章,您需要刪除它,就像從數組中刪除項目一樣。 –
嘗試'data = data.filter(布爾);'在刪除項目後。 –