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 相关文章推荐
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
Jul 10 Javascript
js实现顶部可折叠的菜单工具栏效果实例
May 09 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
Aug 20 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
Nov 29 Javascript
ng2学习笔记之bootstrap中的component使用教程
Mar 09 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
Jan 22 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
通过vue提供的keep-alive减少对服务器的请求次数
Apr 01 Javascript
Node.js使用Angular简单示例
May 11 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
Mar 27 Javascript
JavaScript监听触摸事件代码实例
Dec 30 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 缓冲的免费实现方法
2006/10/09 PHP
如何在PHP中使用Oracle数据库(6)
2006/10/09 PHP
PHP 变量定义和变量替换的方法
2009/07/30 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
php之可变变量的实例详解
2017/09/12 PHP
json原理分析及实例介绍
2012/11/29 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
Django框架序列化与反序列化操作详解
2019/11/01 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
公证委托书
2014/08/01 职场文书
房屋出售授权委托书
2014/10/12 职场文书
小学见习报告
2014/10/31 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
作弊检讨书
2015/01/27 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
经营场所使用证明
2015/06/19 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
深入理解go slice结构
2021/09/15 Golang
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang