大家都非常喜欢javascript,并希望能帮助解决这个问题。基本上我要做的是从我的数组中删除一个对象。该数组包含以下对象: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"
我想使用对象的id删除对象,这是第一列。
我试过的是遍历数组以找到相应的id并删除它,但问题是第一列没有标记为“id”,第一列是id形式(例如123)。
任何帮助都将不胜感激。
geb.replaceAll("\\.", "")
答案 0 :(得分:4)
您可以使用filter
代替循环:
var y = [{123:1},{321:2},{234:3}]
var id = 123;
y = y.filter((obj) => !obj.hasOwnProperty(id));
console.log(y);
&#13;
答案 1 :(得分:2)
只需检查某个密钥:
for (var i = 0; i < y.length; i++)
if (key in y[i]) {
y.splice(i,1);
}
}
答案 2 :(得分:1)
我使用两个参数(数组,对象的键)创建一个函数 在数组中使用forEach方法我检查并比较键给定键(通过参数)和对象元素中的existen键。如果是真的那么我使用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);
&#13;