美文网首页
数组去重三种方法

数组去重三种方法

作者: 秃头成就技术 | 来源:发表于2018-09-15 10:01 被阅读9次

       *介绍下通常 下 使用最多数组去重三种做法

     1.indexOf 判断一波

            function noRepeat(arr) {

                 var arr2 = [];

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

                    // 如果arr[i]不存在arr2中,把元素添加到arr2中

                     if(arr2.indexOf(arr[i]) == -1) {

                -- 或者 if(arr.indexOf(arr[i]) == i) {也一样可以--

                         arr2.push(arr[i]);

                    }

               }

                 return arr2;

             }

             var arr = [1,2,32,1,1,2,3,4,5]

            arr = noRepeat(arr);

            console.log(arr);

        var arrNum = [1,'a', 'a', 'a',2,2,3,3,3,3,3,4,4];


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

    使用这种方法,占用内存更少

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

    function unique(arr){

      var res =[];

      var json = {};

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

    //对象中不存在这个属性,输出值为undefined,布尔值为false

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

          res.push(arr[i]);

          json[arr[i]] = 1;

        }

      }

      return res;

    }


    3.Es6方法

    var arr=[1,5,8,8,8,5,2,1,1,5]

    var np=new Set(arr)

    //扩展运算符    去除外壳

    var arr2=[...np]

    相关文章

      网友评论

          本文标题:数组去重三种方法

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