[英]removing objects from array
我有一个array = []
它包含对象... obj, obj, obj
。 我必须删除obj two
,但我不知道索引...所以我怎样才能删除 obj. object 的名称也相同。
我希望它可以帮助你:
function removeByElement(array,obj) {
for(var i=0; i<array.length;i++ ) {
if(array[i]==obj) {
array.splice(i,1);
break;
}
}
}
编辑:打破循环。
执行此操作的 ES5 方法是使用Array.filter
myarray = myarray.filter(function(val, index, a) {
return (val !== obj);
});
如果您没有 ES5,请参阅上面链接的 MDN 页面以获取要使用的版本。
从技术上讲,这会创建一个新数组,而不是修改原始数组。 然而,在其他答案中提出的splice
并不是特别有效,因为它必须重新编号每个匹配元素上方的所有索引,并且如果有多个匹配项,它将一遍又一遍地这样做。
function removeObject(obj, arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === obj) {
arr.splice(i, 1);
break;
}
}
}
如果您不知道索引,则必须迭代所有元素并检查每个元素是否是您要查找的元素,然后将其delete
。
var len = your_array.length;
for(var i=0; i<len;i++){
if(typeof(your_arry[i])=='classOfTypeYouLookFor'){// OR if(your_array[i].property_of_class && your_array[i].property_of_class==some_specific_value){
delete(your_arry[i]);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.