[英]remove object from an array
我有一个具有以下结构的数组:
var y = [{id:12,count:10}, {id:23,count:89}, {id:21,count:100},]
如何删除id:23的元素?
我不愿意使用在数组Array.prototype.remove上创建原型方法
任何指针赞赏
谢谢
ES5代码:
y = y.filter(function( obj ) {
return obj.id !== 23;
});
所有主要浏览器均广泛支持ES5。 不过,您可能仍要包括几个Shim来备份旧式的浏览器
for (i in y) {
if (y[i].id == 23) {
y.splice(i, 1);
break;
}
}
Denis Ermolin的答案是一个选择,尽管可能会出现一些问题,但我建议这样做:
for(var i=0;i<y.length;i++)
{
if (y[i].hasOwnProperty('id') && y[i].id === 23)
{
delete(y[i]);
break;
}
}
使用数组时,最好避免for - in
循环,因为这将遍历Array.prototype
,因此i
可能突然包含length
而不是索引号。
当您处理对象时, for in
循环是一件很了不起的事情,但是再次:它遍历了原型,这就是为什么最好使用hasOwnProperty
方法。
其余的都向前走,我想...祝你好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.