javascript数组去重方法总结(推荐)


Posted in Javascript onMarch 20, 2019

 第一种--对象键值去重

Array.prototype.unique1 = function () {
   var r = {},
    temp = []
   for (var i = 0; i < this.length; i++) {
    if (!r[this[i]]) {
     r[this[i]] = 1
     temp.push(this[i])
    }
   }
   return temp
  }

第二种--splice删除去重

Array.prototype.unique2 = function () {
   for (var i = 0; i < this.length; i++) {
    for (var j = i + 1; j < this.length; j++) {
     if (this[i] === this[j]) {
      this.splice(j, 1)
      j--
     }
    }
   }
   return this
  }

第三种--利用数组indexOf方法

// 循环遍历当前数组,当前不在临时数组的,push
  Array.prototype.unique3 = function () {
   var temp = []
   for (var i = 0; i < this.length; i++) {
    if (temp.indexOf(this[i]) === -1) temp.push(this[i])
   }
   return temp
  }

第四种--数组下标

// 当前数组的第i项在当前数组第一次出现的位置不是i,当前项即重复,反之
  Array.prototype.unique4 = function () {
   var temp = [this[0]]
   for (var i = 1; i < this.length; i++) {
    if (this.indexOf(this[i]) === i) temp.push(this[i])
   }
   return temp
  }

第五种

// 先排序,找相邻的项
  // 这个会改变原来数组的顺序
  Array.prototype.unique5 = function () {
   var tempArr = this.sort(),
    temp = [tempArr[0]]
   for (var i = 1; i < tempArr.length; i++) {
    if (tempArr[i] !== temp[temp.length - 1]) temp.push(tempArr[i])
   }
   return temp
  }

第六种

// 优化遍历数组
  // 获取没重复的最右一值放入新数组
  Array.prototype.unique6 = function () {
   var temp = []
   for (var i = 0; i < this.length; i++) {
    for (j = i + 1; j < this.length; j++) {
     if (this[i] === this[j]) {
      i++;
      j = i;
     }
    }
    temp.push(this[i])
   }
   return temp
  }

第七种--es6 set

Array.prototype.unique7 = function () {
   var temp = new Set(this)
   return [...temp]
  }

第八种--filter

Array.prototype.unique8 = function () {
   return this.filter(function (ele, index, self) {
    return self.indexOf(ele) === index;
   })
  }

以上所述是小编给大家介绍的javascript数组去重方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
将两个div左右并列显示并实现点击标题切换内容
Oct 22 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
Dec 12 Javascript
JavaScript中用getDate()方法返回指定日期的教程
Jun 09 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
Jun 21 Javascript
AngularJS中过滤器的使用与自定义实例代码
Sep 17 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
使用angularjs.foreach时return的问题解决
Sep 30 Javascript
layui 对table中的数据进行转义的实例
Sep 12 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
Aug 11 Javascript
详解vue 组件的实现原理
Nov 12 Javascript
浅谈JavaScript面向对象--继承
Mar 20 #Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 #Javascript
vue踩坑记录之数组定义和赋值问题
Mar 20 #Javascript
vue实现微信二次分享以及自定义分享的示例
Mar 20 #Javascript
vscode配置vue下的es6规范自动格式化详解
Mar 20 #Javascript
利用Promise自定义一个GET请求的函数示例代码
Mar 20 #Javascript
详解VS Code使用之Vue工程配置format代码格式化
Mar 20 #Javascript
You might like
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
jQuery 1.0.2
2006/10/11 Javascript
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
JavaScript Konami Code 实现代码
2009/07/29 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
python正则实现计算器功能
2017/12/14 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
python raise的基本使用
2020/09/10 Python
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
出纳岗位职责
2013/11/09 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
务工证明怎么写
2015/06/18 职场文书
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android