说明:这里贴出两种去重方式,第一种比较简洁优雅,第二种效率更高。两种本质上都是有那个hash思想来去重的。
var arr=[
{name:"cayley",from:"shanghai"},
{name:"mark",from:"anhui"},
{name:"cayley",from:"shanghai"},
{name:"test",from:"anhui"},
{name:"cayley",from:"shanghai"},
{name:"mark",from:"anhui"},
1,
2,
1
];
function removeRepeatArray(arr) {
var data={};
arr.forEach(function(item){
data[JSON.stringify(item)]=item;
});
arr=Object.keys(data).map(function (item) {
return JSON.parse(item)
});
return arr;
}
function removeRepeatArray2(arr) {
var hash={};
var data=[];
for(var i=0;i<arr.length;i++){
if(!hash[JSON.stringify(arr[i])]){
hash[JSON.stringify(arr[i])]=true;
data.push(arr[i]);
}
}
return data;
}
console.time('removeRepeatArray');
console.log(removeRepeatArray(arr));
console.timeEnd('removeRepeatArray');
console.time('removeRepeatArray2');
console.log(removeRepeatArray2(arr));
console.timeEnd('removeRepeatArray2');
结论:通过耗时对比,很明显可以看出方法二的效率高于方法一。