Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组中删除对象_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 从数组中删除对象

Javascript 从数组中删除对象,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个具有以下结构的数组: 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。不过,您可能希望在其中的一个页面上添加一些垫片,以

我有一个具有以下结构的数组:

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。不过,您可能希望在其中的一个页面上添加一些垫片,以备份旧式浏览器

ES5代码:

y = y.filter(function( obj ) {
    return obj.id !== 23;
});

所有主流浏览器都广泛支持ES5。尽管如此,您可能希望在其中添加一些垫片来备份老式浏览器

Denis Ermolin的答案是一个选项,尽管可能会出现一些问题,但我建议如下:

for(var i=0;i<y.length;i++)
{
    if (y[i].hasOwnProperty('id') && y[i].id === 23)
    {
        delete(y[i]);
        break;
    }
}

for(var i=0;iDenis Ermolin的答案是一个选项,尽管可能会出现一些问题,但我建议如下:

for(var i=0;i<y.length;i++)
{
    if (y[i].hasOwnProperty('id') && y[i].id === 23)
    {
        delete(y[i]);
        break;
    }
}

for(var i=0;i的可能重复和可能重复,如果可能存在两个具有匹配id的元素,则这可能会失败(如果它们是按顺序重复的),如果只有一个,那么if块中应该有一个
break
rty数组对象的名称。@DenisErmolin:你是基于什么理由提出这一主张的?很好的问题。这是错误的。当然,任何浏览器都会列出对象属性。简单示例:
var foo=[1,2,3];foo.IAMBOSSBITCH=true;
在此循环…如果可能存在两个具有匹配id的元素,则此操作可能会失败(如果它们按顺序重复),如果只有一个,那么if块中应该有一个
break
rty数组对象的名称。@DenisErmolin:你是基于什么理由提出这一主张的?这是一个很好的问题。这是错误的。当然,任何浏览器都会列出对象属性。简单的例子:
var foo=[1,2,3];foo.IAMBOSSBITCH=true;
。。。