Javascript 在我的案例中,如何移除对象
我正在尝试删除基于obj id的对象 我有点像Javascript 在我的案例中,如何移除对象,javascript,Javascript,我正在尝试删除基于obj id的对象 我有点像 var array =[]; var id =3; array [ { id:'1', title:'test' }, { id:'2', title:'tes2' }, { id:'3', title:'tes3' } ] 如何根据id 3删除对象。谢谢 使用: 或者,要在位修改阵列,请执行以下操作: for ( i = 0; i < array.len
var array =[];
var id =3;
array [
{
id:'1',
title:'test'
},
{
id:'2',
title:'tes2'
},
{
id:'3',
title:'tes3'
}
]
如何根据id 3删除对象。谢谢 使用:
或者,要在位修改阵列,请执行以下操作:
for ( i = 0; i < array.length; ++i )
{
if (array[i].id == id)
{
array.splice(i, 1);
break;
}
}
如果您或您的用户使用的是最新浏览器,则可以使用以下选项来替代先前发布的答案:
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 );
参考资料:
.
.
数组。拼接ID-1,1;指定重新打开-虽然Array.prototype.filter仍在使用,但查找元素与删除元素是不同的操作;返回一个没有该项的新数组。虽然它可以工作,但速度会慢一些,而且会消耗比需要更多的内存。添加了一个就地修改版本;如果idx!==-1个数组。idx,1;
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 );