博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组去重的方法
阅读量:6071 次
发布时间:2019-06-20

本文共 985 字,大约阅读时间需要 3 分钟。

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]

 

转载于:https://www.cnblogs.com/duanzhange/p/8545195.html

你可能感兴趣的文章
你的命运不是一头骡子
查看>>
阿里技术总监郭东白:创新之歌该如何唱
查看>>
启动hdfs报java.io.IOException: Premature EOF from inputStream错误
查看>>
Spring的Java配置方式简单示例
查看>>
Mozilla称Edge拥抱Chromium会伤害互联网的健康发展
查看>>
shell脚本,变量、data用法
查看>>
MySQL启动报“[Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 15000)”...
查看>>
Nexus Repository Manager 搭建私有docker仓库
查看>>
Python RPC 之 Thrift
查看>>
ThinkPHP5
查看>>
MySQL级联删除的问题
查看>>
php数据库类
查看>>
阿里巴巴Java开发手册
查看>>
【精】H5移动端webapp开发(快装app)项目案例
查看>>
1.1 学习之初 1.2 约定 1.3 认识Linux 1.4 安装虚拟机 1.5 安装centos7
查看>>
一张图读懂“云栖大会·南京峰会”重磅发布产品
查看>>
hi3519/hi3516AV200交叉编译opencv的精简版本
查看>>
区块链100讲:如何使用开发环境命令行注册EOS靓号及变更EOS账号的active key和其他...
查看>>
区块链100讲:以太坊智能合约solidity如何节省GAS费?
查看>>
解决python3中解压zip文件是文件名乱码的问题
查看>>