数组去重方法小结

发布时间:2019-08-13 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了数组去重方法小结脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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=1;i<arr2.length;i++){

    if(arr2[i] !== res[res.length-1]){

      res.push(arr2[i]);

    }

  }

  return res;

}

3.利用对象的属性去重(推荐)

思路:每次取出原数组的元素,然后再对象中访问这个属性,如果存在就说明重复

function unique(arr){

  var res =[];

  var JSON = {};

  for(var i=0;i<arr.length;i++){

    if(!json[arr[i]]){

      res.push(arr[i]);

      json[arr[i]] = 1;

    }

  }

  return res;

}

4.利用下标查询

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

5.利用es6

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

6.concat()方法

思路:concat() 方法将传入的数组或非数组值与原数组合并,组成一个新的数组并返回。该方法会产生一个新的数组。

function concatArr(arr1, arr2){
var arr = arr1.concat(arr2);
arr = unique1(arr);//再引用上面的任意一个去重方法
return arr;
}

7.Array.prototype.push.apply()

思路:该方法优点是不会产生一个新的数组。

var a = [1, 2, 3]; var b = [4, 5, 6]; Array.prototype.push.apply(a,
b);
//a=[1,2,3,4,5,6] //等效于:a.push.apply(a, b); //也等效于[].push.apply(a,
b);
function concatArray(arr1,arr2){
Array.PRototype.push.apply(arr1, arr2);
arr1 = unique1(arr1);
return arr1;
}

8.arr.filter()

var arr = [0,0,1,'a',1,2,'b','a','a'];
var res = arr.filter(function(ele,index,array){
    return index === array.indexOf(ele);
});
document.wrITe(res);

脚本宝典总结

以上是脚本宝典为你收集整理的数组去重方法小结全部内容,希望文章能够帮你解决数组去重方法小结所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。