问题网址 : http://bbs.daxiangclass.com/?thread-323.htm
原生js去重方法
1. 冒泡去重
function unique(arr){
var res=[];
for(var i=0,len=arr.length;i<len;i++){
var obj = arr[i];
for(var j=0,jlen = res.length;j<jlen;j++){
if(res[j]===obj) break;
}
if(jlen===j)res.push(obj);
}
return res;
}
var arr=[1,1,'2','1',3,4]
arr = unique(arr);
console.log(arr);
indexOf()方法
function unique(arr){
var res =[];
for(var i=0,len=arr.length;i<len;i++){
var obj = arr[i];
if(res.indexOf(obj)===-1) res.push(obj);
}
return res;
}
var arr=[1,1,'2','1',3,4]
arr = unique(arr);
console.log(arr);// arr=[1,'2','1',3,4]
3. 利用ES5数组里的filter过滤:
function unique(a) {
var res = a.filter(function(item, index, array) {
return array.indexOf(item) === index;
});
return res;
}
var a = [1, 1, '1', '2', 1];
var ans = unique(a);
console.log(ans);
4 es6新语法实现数组去重
set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目。
var arr = [1,2,'1',1,null,null,undefined,undefined,NaN,NaN];
console.log(new Set(arr));
5.