我有一个对象数组:
var items = [{ id: 1, text: "test1" }, { id: 2, text: "test2" }, { id: 3, text: "test3"}];
我有以下对象:
var itemToRemove = { id: 2, text: "test2" };
如果itemToRemove
数组中存在items
,我想按ID检查。
删除它:
// pseudo code
items.remove(itemToRemove);
我经历了javascript数组方法,但没有发现任何可以完成这项工作的方法。谢谢!
答案 0 :(得分:2)
使用filter
:
items.filter(function (item) {
return item.id !== 2 || item.text !== "text2";
});
改变原始阵列通常不是一个好主意,否则我会推荐Sirko的答案。 filter
方法生成一个全新的数组。它不会改变原始数组。
答案 1 :(得分:1)
使用普通循环遍历数组,然后使用splice()
删除匹配项:
for( var i=0; i<items.length; i++ ) {
if( items[i].id == itemToRemove.id ) {
items.splice( i, 1 ); // remove the item
break; // finish the loop, as we already found the item
}
}