[英]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.