如何从包含JavaScript的数组中删除一个对象? [英] How do I remove an object from an array with JavaScript?
本文介绍了如何从包含JavaScript的数组中删除一个对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个JavaScript对象是这样的:
ID =1;
NAME =塞尔达
和我有一个包含以上许多对象的数组。我怎样才能删除对象从数组如这样的:
OBJ [1]一个.remove();
解决方案
好剪接作品:
VAR ARR = {[ID:1,名称:塞尔达}];
arr.splice(0,1);
// []
不要使用delete删除操作符的阵列。
但也许你想这样的事情?
VAR removeByAttr =功能(ARR,ATTR,价值){
VAR I = arr.length;
当我 - ){
如果(ARR [I]
&功放;&安培;改编[I] .hasOwnProperty(ATTR)
&功放;&安培; (的arguments.length→2&放大器;&放大器;常用3 [Ⅰ] [ATTR] ===值)){ arr.splice(I,1); }
}
返回ARR;
}VAR ARR = {[ID:1,名称:塞尔达},{ID:2,名称:苜蓿},{ID:3,名称:'乔'}]
removeByAttr(ARR,ID,1);
// [{ID:2,名称:苜蓿},{ID:3,名称:'乔'}]removeByAttr(ARR,'名','乔');
// [{ID:2,名称:'紫花苜蓿'}]
只是一个例子
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();
解决方案
Well splice works:
var arr = [{id:1,name:'serdar'}];
arr.splice(0,1);
// []
Do NOT use the delete 'delete' operator on Arrays.
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'}]
Just an example.
这篇关于如何从包含JavaScript的数组中删除一个对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文