• 数组去重的方法


    1.双for循环形式、splice

    思路:将数组中的值一个个的比较,重复的就删掉

    function remove(array){

      for(var i=array.length-1; i>=1; i--){

                  for(var j=i-1; j>=0; j--){

                          if(array[j]==array[i])

                                array.splice(j,1);  

                       }

                  }

            return array;

     }

    a=[1,1,2,2,2,3,4,5];

    remove(a);  // [1,2,3,4,5]

    2.indeOf、push

    思路:设置一个新数组,根据indexOf筛选原数组,只要新数组中没有的,就push到新数组中

    function remove(array){

        var newArray=[];

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

                    if(newArray.indexOf(array[i]==-1)){

                                newArray.push(array[i]);

                        }

                     }

                  return newArray; 

           }

        a=[1,1,2,3,3,4];

       remove(a);   // [1,2,3,4]

    3.    先排序再去重

    思路:先将原数组排序,再与相邻的进行比较,如果不同则存入新数组

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

    }

     4.es6 Set、Array.from方法

    思路:

         1.Set函数可以接受一个数组(或者类似数组的对象)作为参数,用来初始化,其成员的值都是唯一的,没有重复的值。

         2.Array.from()方法可以将类数组对象和可遍历的对象转化为真正的数组。

         function remove(a){

            return Array.from(new Set(a));

    }

             a=[1,2,3,3,3,2,4,5,5];

             remove(a); //[1,2,3,4,5]

  • 相关阅读:
    设计模式
    python高亮显示输出
    数据库入门3 数据库设计
    分支循环相关
    软件目录结构规范
    数据库入门2 数据库基础
    三级菜单
    字符串相关问题
    登录接口
    购物车
  • 原文地址:https://www.cnblogs.com/duanzhange/p/8545195.html
Copyright © 2020-2023  润新知