数组去重的方法

Posted gaoht

tags:

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

 方法一:利用

function arrRepeat(arr) {
    let obj = {};
    let newArray = [];
    for(let i = 0; i < arr.length; i++) {
      if(!obj.hasOwnProperty(arr[i])) {
          obj[arr[i]] = i;
        newArray.push(arr[i]);
    }
  }
  return newArray
}

console.log(arrRepeat([1,2,1,3,5,,,3,6,q,a,q,a]))      //[1, 2, 3, 5, "哈", 6, "q", "a"]

 

方法二:利用ES6的set

Set数据结构,它类似于数组,其成员的值都是唯一的。

利用Array.from将Set结构转换成数组

function dedupe(array){
 return Array.from(new Set(array));
}
dedupe([1,1,2,3]) //[1,2,3]

拓展运算符(...)内部使用for...of循环

let arr = [1,2,3,3];
let resultarr = [...new Set(arr)]; 
console.log(resultarr); //[1,2,3]

方法三: 双循环

双层循环,外层循环元素,内层循环时比较值

如果有相同的值则跳过,不相同则push进数组

 function arrRepeat(arr){
  
  let result = [],
  i,
  j,
  len = arr.length;
 for(i = 0; i < len; i++){
  for(j = i + 1; j < len; j++){
   if(arr[i] === arr[j]){
    j = ++i;
   }
  }
  result.push(arr[i]);
 }
 return result;
}

console.log(arrRepeat([1,2,1,3,5,,,3,6,q,a,q,a]))  // [2, 1, 5, "哈", 3, 6, "q", "a"]

 

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

数组去重的5种方法

js数组去重的几种方法

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

js 数组去重的方法总结

两种js数组去重的方法

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