如何删除:
var arr = [{a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}, {a: 7, b: 8}];
将b
设置为2的数组中的对象
答案 0 :(得分:2)
arr = arr.filter(function( a ) {
return a.b !== 2;
});
这仅适用于IE9 +
答案 1 :(得分:1)
我认为最快的方法就是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); }
}
答案 2 :(得分:0)
根据jsperf,删除数组元素的最快方法是使用delete array[index]
。资料来源:http://jsperf.com/object-delete-vs-array-splice-vs-array-delete
解决方案可能是:http://jsfiddle.net/no20bv5o/3/
但由于for循环和第二个数组的开销,它比前面提到的arr.filter()
慢,如jsperf所示:http://jsperf.com/filter-array-by-element-attribute