[英]Delete object from javascript array using variable property value
大家好,我是javascript的新手,希望我對此有一些幫助。 基本上,我想做的是從數組中刪除單個對象。 該數組包含這樣的對象: y = [{id:group}].
我想使用對象的ID(即第一列)刪除一個對象。
我嘗試過的是在數組中循環查找相應的id並將其刪除,但是這里的問題是第一列未標記為“ id”,第一列為id形式(例如123)。
任何幫助,將不勝感激。
y = [{123:1},{321:2},{234:3}]
id = 123;
for (var i = 0; i < y.length; i++)
if (y[i].id === id) {
y.splice(i,1);
}
//Does not work because the first column of the object is not named "id"
您可以使用filter
而不是循環:
var y = [{123:1},{321:2},{234:3}] var id = 123; y = y.filter((obj) => !obj.hasOwnProperty(id)); console.log(y);
只需檢查該特定鍵:
for (var i = 0; i < y.length; i++)
if (key in y[i]) {
y.splice(i,1);
}
}
我使用兩個參數(數組,對象的鍵)創建函數,使用數組內部的forEach方法檢查並比較給定的鍵(通過參數)與對象元素中存在的鍵。如果為true,則我使用splice()方法刪除包含鍵的對象:
y = [{123:1},{321:2},{234:3}]; function deleteObj(arg,value){ arg.forEach(function(element){ var index=arg.indexOf(element); if(Object.keys(element)==value.toString()){ arg.splice(index,1); } }); } deleteObj(y,123); console.log(y);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.