数组去重
1、定义一个新数组,并存放原数组的第一个元素,然后将原数组一一和新数组的元素对比,若不同放在新数组中
function unique(arr){
var res = [arr[0]];
for(var i=1;i<arr.length;i++){
var repeat = false;
for(var j=0;j<res.length;j++){
if(arr[i] == res[j]){
repeat = true;
break;
}
}
if(!repeat){
res.push(arr[i]);
}
}
return res;
}
2、先排序再去重,(先将原数组排序,再与相邻的进行比较,如果不同则存入新数组)
function unique(arr){
var arr2 = arr.sort();//排序
var res = [arr2[0]];
for(var i=0;i<arr2.length;i++){
//遍历arr2,判断arr2[i]与新数组的的最后一位比较,不等,则push进数组
if(arr2[i]!=res[res.length-1]){
res.push(arr2[i])
}
}
return res;
}
3、利用对象属性去重
function unique(arr){
var newArr=[]
var obj={}
for(var i=0;i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]]=1 (切记,不能等于0,不然等于没有操作)
newArr.push(arr[i])
}
}
return newArr
}
4、利用数组下标属性去从重
当数组中没有该项的时候,返回-1,否则返回该项的索引值
function unique(arr){
var newArr = [arr[0]];
for(var i=1;i<arr.length;i++){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i]);
}
}
return newArr;
}

浙公网安备 33010602011771号