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 相关文章推荐
javascript 写类方式之七
Jul 05 Javascript
理解JavaScript变量作用域更轻松
Oct 25 Javascript
Javascript 中介者模式实例
Dec 16 Javascript
纯CSS打造的导航菜单(附jquery版)
Aug 07 Javascript
JQuery将文本转化成JSON对象需要注意的问题
May 09 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
Mar 04 Javascript
javascript 常见功能汇总
Jun 11 Javascript
JS使用JSON作为参数实例分析
Jun 23 Javascript
vue数据响应式原理知识点总结
Feb 16 Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 Javascript
你准备好迎接vue3.0了吗
Apr 28 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
May 03 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
一个ftp类(ini.php)
2006/10/09 PHP
PHP的开合式多级菜单程序
2006/10/09 PHP
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
JavaScript知识点整理
2015/12/09 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
JAVA中截取字符串substring用法详解
2017/04/14 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
vue axios用法教程详解
2017/07/23 Javascript
js模块加载方式浅析
2017/08/12 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
python定时任务 sched模块用法实例
2019/11/04 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
Python爬虫开发与项目实战
2020/12/16 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
武汉英思工程科技有限公司&ndash;ORACLE面试测试题目
2012/04/30 面试题
网管求职信
2014/03/03 职场文书
具结保证书
2015/01/17 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
MySQL 字符集 character
2022/05/04 MySQL