Javascript 使用一个值从数组中删除对象
可能是初学者提出的一个非常明显的问题: 如果我有以下数组Javascript 使用一个值从数组中删除对象,javascript,jquery,arrays,oop,Javascript,Jquery,Arrays,Oop,可能是初学者提出的一个非常明显的问题: 如果我有以下数组 var arr = [ {id: 1, item: "something", description: "something something"}, {id: 2, item: "something else", description: "something different"}, {id: 3, item: "something more", description: "more than somet
var arr =
[
{id: 1, item: "something", description: "something something"},
{id: 2, item: "something else", description: "something different"},
{id: 3, item: "something more", description: "more than something"}
]
。。。并希望通过调用id(在本例中,通过单击给定相应id的div)来删除其中的特定对象
。。。我可以不使用for循环来匹配arr[I]
和thisItem
来执行此操作吗?如果是,怎么做?我将有一个大的数组,所以运行for循环看起来非常费力
谢谢 您可以使用JQuery的
grep
arr = jQuery.grep(arr, function(value) {
return value.id != id;
});
可以用于筛选任何数组。此方法将筛选函数作为其参数,并在原始数组的每个元素上运行它。如果此函数的返回值为false
,则从返回的新数组中筛选出该元素。原始阵列不受影响
var arr =
[
{id: 1, item: "something", description: "something something"},
{id: 2, item: "something else", description: "something different"},
{id: 3, item: "something more", description: "more than something"}
];
function filterArray( id ){
return arr.filter(function(item){
return item.id != id;
});//filter
}//filterArray()
console.log( filterArray(2) );
普通JS解决方案:
var arr = [{
id: 1,
item: "something",
description: "something something"
}, {
id: 2,
item: "something else",
description: "something different"
}, {
id: 3,
item: "something more",
description: "more than something"
}];
var filtered = filterArrayByElemId(arr, 2);
console.log(filtered);
function filterArrayByElemId(arr, id) {
return arr.filter(function(item) {
return item.id != id;
});
}
对于最新的浏览器,
array.filter
是一种非常有效的方法。非常感谢。这也非常有效。谢谢
var arr = [{
id: 1,
item: "something",
description: "something something"
}, {
id: 2,
item: "something else",
description: "something different"
}, {
id: 3,
item: "something more",
description: "more than something"
}];
var filtered = filterArrayByElemId(arr, 2);
console.log(filtered);
function filterArrayByElemId(arr, id) {
return arr.filter(function(item) {
return item.id != id;
});
}