[英]What's the fastest way to remove an object from an array that has a specific property?
如何刪除:
var arr = [{a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}, {a: 7, b: 8}];
b
設置為2的數組中的對象?
arr = arr.filter(function( a ) {
return a.b !== 2;
});
這僅適用於IE9 +
我認為最快的方法是for循環,如果我寫錯了,請糾正我...
var arr = [{a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}, {a: 7, b: 8}];
for(var i=0; i<arr.length; i++) {
if(arr[i].b==2) { arr.splice(i,1); }
}
根據jsperf的說法,刪除數組元素的最快方法是使用delete array[index]
。 資料來源: http : //jsperf.com/object-delete-vs-array-splice-vs-array-delete
解決方案可能是這樣: http : //jsfiddle.net/no20bv5o/3/
但是由於for循環和第二個數組的開銷,它比前面提到的arr.filter()
慢,如下面的arr.filter()
所示: http ://jsperf.com/filter-array-by-element-attribute
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.