数组合并时,经常会需要去除重复,这时有一个高效的方法,不论是什么数组,稍做修改就可以使用。
如下例所示,我的数组是个对象对象,我就做了一下改良:
function unique(arr) {
var result = [], hash = {};
for (var i = 0, elem; (elem = arr[i]) != null; i++) {
if (!hash[elem.id]) {
result.push(arr[i]);
hash[elem.id] = true;
}
}
return result;
}