数组去重

方法一

  -思路:每遍历一次就和之前的所有做比较,不相等则放入新的数组中!

  -这里用的原型 个人做法;

Array.prototype.unique = function(){

    var len = this.length,

          newArr = [],

          flag = 1;

    for(var i = 0; i < len; i++, flag = 1){

        for(var j = 0; j < i; j++){

            if(this[i] == this[j]){

                flag = 0;        //找到相同的数字后,不执行添加数据

            }

        }

        flag ? newArr.push(this[i]) : '';

    }

    return newArr;

}


方法二

var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4];

Array.prototype.unique2 = function(){
     var n = []; //一个新的临时数组

     for(var i = 0; i < this.length; i++) //遍历当前数组 {

        //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面

        if (n.indexOf(this[i]) == -1) n.push(this[i]);

    }

    return n;

}

var newArr2=arr.unique2(arr);

alert(newArr2); //输出1,2,3,4,5,6,9,25


方法三

    -采用es6的set容器实现去重

var arr = [1,1,2,2,3]

var arr1 = new Set(arr)

console.log(arr1) //输出1,2,3

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组去重的方法:通过直接方法去重、通过对象的属性具有唯一性去重、通过索引值去重、先排序在去重 案例: (1)索引去...
    痛心凉阅读 267评论 0 2
  • 2019.08.02补:对象数组建议直接循环然后使用工具库(lodash)的深比较,评论里也有指出,文章的方法有些...
    始悔不悟阅读 61,050评论 13 26
  • 数组去重是面试中经常问到的问题,也是一个合格的前端必须掌握的知识。我总结了这三种常用的方法。 var arr=[1...
    qhaobaba阅读 383评论 0 3
  • 1.js数组去重的常用方法总结 1.第一种是比较常规的方法思路:1.构建一个新的数组存放结果2.for循环中每次从...
    Smallbore阅读 610评论 0 3