JS数组去重的6种方法完整实例


Posted in Javascript onDecember 08, 2018

本文实例讲述了JS数组去重的6种方法。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>3water.com 数组去重</title>
  </head>
  <body>
    <script>
      //1.filter:(indexOf)方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素, filter() 不会对空数组进行检测。 filter() 不会改变原始数组。
      var arr1 = [7, 7, 7, 8, 8, 8, 82, 82, 839, 49, 329, 8, 3, 3];
      var arr1_1 = arr1.filter(function(m, n) {
        return arr1.indexOf(m) == n;
      })
      document.write(arr1_1 + "<br />");
      //2.map:(push indexOf)把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象。
      var arr2 = [7, 7, 7, 8, 8, 8, 82, 82, 839, 49, 329, 8, 3, 3];
      var arr2_2 = [];
      arr2.map(function(m, n) {
        if(arr2.indexOf(arr2[n]) == n) {
          arr2_2.push(m);
        }
      });
      document.write(arr2_2 + "<br />");
      //3.indexOf(push)搜索数组中的元素,并返回它所在的位置。
      var arr3 = [7, 7, 7, 8, 8, 8, 82, 82, 839, 49, 329, 8, 3, 3];
      var arr3_3 = [];
      for(var i = 0; i < arr3.length; i++) {
        if(arr3_3.indexOf(arr3[i]) == -1) {
          arr3_3.push(arr3[i]);
        }
      }
      document.write(arr3_3 + "<br />");
      //4.splice对数组进行删除、插入、替换,是最强大的数组方法。改变原数组
      var arr4 = [7, 7, 7, 8, 8, 8, 82, 82, 839, 49, 329, 8, 3, 3];
      for(var i = 0; i < arr4.length; i++) {
        for(var j = i + 1; j < arr4.length; j++) {
          if(arr4[i] == arr4[j]) {
            arr4.splice(j, 1)
            j--; //别忘记减
          }
        }
      }
      document.write(arr4 + "<br />");
      //5.push(数组去重一一对比)添加到数组末尾
      var arr5 = [7, 7, 7, 8, 8, 8, 82, 82, 839, 49, 329, 8, 3, 3];
      function remm(arr) {
        var arr5_5 = [];
        for(var i = 0; i < arr5.length; i++) {
          for(var j = 0; j < arr5.length; j++) {
            if(arr5[i] == arr5_5[j]) {
              break;
            }
          }
          if(arr5[i] != arr5_5[j]) {
            arr5_5.push(arr5[i]);
          }
        }
        return arr5_5;
      }
      document.write(remm(arr5) + "<br />");
      //6.set数据结构Set类似于数组,但是成员的值都是唯一的,没有重复的值。用set.size表示伪数组长度
    var arr6= [7, 7, 7, 8, 8, 8, 82, 82, 839, 49, 329, 8, 3, 3];
      var set = new Set(arr6);
      var newArr = new Array(...set);
      document.write(newArr+"<br />");
    </script>
  </body>
</html>

使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可得到如下运行结果:

JS数组去重的6种方法完整实例

Javascript 相关文章推荐
JavaScript 常见对象类创建代码与优缺点分析
Dec 07 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
用javascript为页面添加天气显示实现思路及代码
Dec 02 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
js 原型对象和原型链理解
Feb 09 Javascript
Node.js中.pfx后缀文件的处理方法
Mar 10 Javascript
详谈AngularJs 控制器、数据绑定、作用域
Jul 09 Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
Oct 25 Javascript
基于Vue的ajax公共方法(详解)
Jan 20 Javascript
Three.js实现3D机房效果
Dec 30 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
Mar 23 Javascript
原生JS实现的放大镜特效示例【测试可用】
Dec 08 #Javascript
JS实现的小火箭发射动画效果示例
Dec 08 #Javascript
jQuery时间戳和日期相互转换操作示例
Dec 07 #jQuery
ES6的Fetch异步请求的实现方法
Dec 07 #Javascript
JavaScript this绑定过程深入详解
Dec 07 #Javascript
React 使用recharts实现散点地图的示例代码
Dec 07 #Javascript
如何手动实现es5中的bind方法详解
Dec 07 #Javascript
You might like
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
对VUE中的对象添加属性
2018/09/18 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
python抓取百度首页的方法
2015/05/19 Python
打包发布Python模块的方法详解
2016/09/18 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
python使用knn实现特征向量分类
2018/12/26 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
物业管理求职自荐信
2013/09/25 职场文书
幼儿园运动会口号
2014/06/07 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
2014年工人工作总结
2014/11/25 职场文书
财务部岗位职责
2015/02/03 职场文书
家长反馈意见及建议
2015/06/03 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python