簡體   English   中英

從數組中刪除對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM