美文网首页
数组去重的几种简单方法

数组去重的几种简单方法

作者: 于哈哈yhh | 来源:发表于2019-05-30 18:11 被阅读0次

1.最简单的就是ES6的实现
function unique(arr){ return [...new Set(arr)]; }
或者是
function unique(arr){ return Array.from(new Set(arr)); }

2.就是我之前最常用的,思想就是先新建一个数组temp,遍历一下,判断这个新数组中有没有当前这个值,没有就push进去,最简单数组去重法

function unique(array){
  var temp = []; //一个新的临时数组
  for(var i = 0; i < array.length; i++){
      if(temp.indexOf(array[i]) == -1){
          temp.push(array[i]);
      }
  }
  return temp;
}

3.第三中的想法和第二种差不多,是通过遍历来判断当前这个值是不是在原数组里第一次出现,也就是说通过判断这个元素的位置是不是等于当前的下标,是那就是第一次出现啦,很简单。

function unique(array){
  var temp = []; //一个新的临时数组
  for(var i = 0; i < array.length; i++){
      if(array.indexOf(array[i]) === i){
          temp.push(array[i]);
      }
  }
  return temp;
}

4.第四种就是根据第三中的想法引申出来了的,是通过filter函数来实现

function unique(array){
  return array.filter( (element, index, self) => {
    return self.indexOf( element ) === index;
  });
}

5.对象键值法去重(这是我找的网上的,感觉挺好,虽然麻烦些)

/* * 速度最快, 占空间最多(空间换时间)
*
* 该方法执行的速度比其他任何方法都快, 就是占用的内存大一些。
* 现思路:新建一js对象以及新数组,遍历传入数组时,判断值是否为js对象的键,
* 不是的话给对象新增该键并放入新数组。
* 注意点:判断是否为js对象键时,会自动对传入的键执行“toString()”,
* 不同的键可能会被误认为一样,例如n[val]-- n[1]、n["1"];
* 解决上述问题还是得调用“indexOf”。*/
function unique(array){ 
  var temp = {}, r = [], len = array.length, val, type; 
  for (var i = 0; i < len; i++) {
        val = array[i];
        type = typeof val; if (!temp[val]) {
            temp[val] = [type];
            r.push(val);
        } else if (temp[val].indexOf(type) < 0) {
            temp[val].push(type);
            r.push(val);
        }
    } 
  return r;
} 

暂时先这样,有好的我再继续更新,哈哈

这里还有一个更全的链接,请移步这里:他山之石

相关文章

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • 数组去重

    推荐几种数组去重的方法

  • 数组去重4种方法

    怎么把类数组转换为数组? 数组去重4几种方法:

  • 数组去重的几种简单方法

    1.最简单的就是ES6的实现function unique(arr){ return [...new Set(ar...

  • 数组去重的几种方法

    整理了几种数组去重比较简单的方案 1.使用new set() 2.使用includes()方法;

  • 数组去重的几种方法

    数组去重的几种方法 ES6 Set去重(ES6常用) -不修改原数组 不考虑兼容性,这种去重的方法代码最少。这种方...

  • 数组去重几种方法

  • js数组去重的几种方法

    js去重的几种方法: 1.使用indexOf()方法---[a.检查当前数组是否存在;b.比较数组的下标---(借...

  • 数组去重封装

    上次写到了数组去重的几种方式数组去重的几种方式,那么今天就让我们来封装一下数组去重吧。 就在数组原型上封装吧! 源...

  • js数组几种去重的方法

    利用indexOf方法,es6也可以用includes方法 利用对象键值 利用set的不可重复性 (感觉比较简单)...

网友评论

      本文标题:数组去重的几种简单方法

      本文链接:https://www.haomeiwen.com/subject/tzavtctx.html