码迷,mamicode.com
首页 > 编程语言 > 详细

数组去重的方法

时间:2018-11-06 13:37:57      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:数据结构   for   方法   cti   ret   i++   ==   双层   div   

 方法一:利用

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"]

 

数组去重的方法

标签:数据结构   for   方法   cti   ret   i++   ==   双层   div   

原文地址:https://www.cnblogs.com/gaoht/p/9914525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!