数组去重

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;
      }

  

原文地址:https://www.cnblogs.com/xumqfaith/p/9130447.html