如何使用 JavaScript 从数组中删除对象? [英] How do I remove an object from an array with JavaScript?
本文介绍了如何使用 JavaScript 从数组中删除对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的 JavaScript 对象:
I have an JavaScript object like this:
id="1";
name = "serdar";
我有一个包含上述许多对象的数组.如何从该数组中删除一个对象,例如:
and I have an Array which contains many objects of above. How can I remove an object from that array such as like that:
obj[1].remove();
推荐答案
splice
很好用:
var arr = [{id:1,name:'serdar'}];
arr.splice(0,1);
// []
不要在数组上使用 delete
运算符.delete
不会从数组中删除一个条目,它只会用 undefined
替换它.
Do NOT use the delete
operator on Arrays. delete
will not remove an entry from an Array, it will simply replace it with undefined
.
var arr = [0,1,2];
delete arr[1];
// [0, undefined, 2]
但也许你想要这样的东西?
But maybe you want something like this?
var removeByAttr = function(arr, attr, value){
var i = arr.length;
while(i--){
if( arr[i]
&& arr[i].hasOwnProperty(attr)
&& (arguments.length > 2 && arr[i][attr] === value ) ){
arr.splice(i,1);
}
}
return arr;
}
下面只是一个例子.
var arr = [{id:1,name:'serdar'}, {id:2,name:'alfalfa'},{id:3,name:'joe'}];
removeByAttr(arr, 'id', 1);
// [{id:2,name:'alfalfa'}, {id:3,name:'joe'}]
removeByAttr(arr, 'name', 'joe');
// [{id:2,name:'alfalfa'}]
这篇关于如何使用 JavaScript 从数组中删除对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文