我正在尝试根据obj id删除一个对象。
我有类似
的东西var array =[];
var id =3;
array [
{
id:'1',
title:'test'
},
{
id:'2',
title:'tes2'
},
{
id:'3',
title:'tes3'
}
]
如何根据id 3. thanks!
删除对象答案 0 :(得分:3)
使用filter()
:
array = array.filter(
function( item ) {
return item.id != id;
}
);
或者,要修改数组:
for ( i = 0; i < array.length; ++i )
{
if (array[i].id == id)
{
array.splice(i, 1);
break;
}
}
答案 1 :(得分:0)
作为之前发布的答案的替代方案,如果您或您的用户使用的是最新的浏览器,则可以使用以下内容:
function removeByPropertyEquals(haystack, needleProp, needleVal) {
haystack.forEach(function (obj, index) {
if (obj[needleProp] === needleVal) {
return index;
}
});
return -1;
}
var id = 3,
array = [{
id: '1',
title: 'test'
}, {
id: '2',
title: 'tes2'
}, {
id: '3',
title: 'tes3'
}];
console.log( array );
array.splice(removeByPropertyEquals(array, 'id', '3'), 1);
console.log( array );
参考文献: