数组去重的方法

Posted karila

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组去重的方法相关的知识,希望对你有一定的参考价值。

数组去重的两种方法:通过下标去重,通过对象属性的方法去重

//下标的方法
    	function getArray(arr){
           var newArray=[];
           arr.forEach(function(item,index,arr){
           	if(newArray.indexOf(item)==-1){
                 newArray.push(item)
           	}
           })
           return newArray;
    	}

    	//对象属性的方法
    	function getArray2(arr){
           var newObject={};
           var newArray=[];
           arr.forEach(function(item,index,arr){
              if(!newObject[item]){
              	 newArray.push(item);
                 newObject[item]=1;
              }else{
              	newObject[item]++;
              }
           })
           return newArray
           }
    	}

  还有去重的方式可以是:

      遍历去重:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中

      先排序后去重:先将原数组排序,在与相邻的进行比较,如果不同则存入新数组

      ES6的set方法

//遍历去重
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;
}

 //先排序,后去重
function unique(arr){
  var arr2 = arr.sort();
  var res = [arr2[0]];
  for(var i=1;i<arr2.length;i++){
    if(arr2[i] !== res[res.length-1]){
      res.push(arr2[i]);
    }
  }
  return res;
}

//ES6中的set 用拓展运算符
let unique=[...new Set(array)];

//Es6中的set方法 用Array.from转换成数组
function dedupe(array){
return Array.from(new Set(array));
}

  

      

以上是关于数组去重的方法的主要内容,如果未能解决你的问题,请参考以下文章

数组去重的5种方法

js数组去重的几种方法

刷题 | 数组去重的4种方法引发的思考

js 数组去重的方法总结

两种js数组去重的方法

js数组去重的三种常用方法总结