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 相关文章推荐
js 回车提交表单两种实现方法
Dec 31 Javascript
JavaScript通过select动态更换图片的方法
Mar 23 Javascript
javascript用函数实现对象的方法
May 14 Javascript
jquery使用ul模拟select实现表单美化的方法
Aug 18 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
Jan 26 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
May 30 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
Jun 25 Javascript
最常见和最有用的字符串相关的方法详解
Feb 06 Javascript
jquery tmpl模板(实例讲解)
Sep 02 jQuery
一篇文章介绍redux、react-redux、redux-saga总结
May 23 Javascript
Layui表格行工具事件与数据回填方法
Sep 13 Javascript
浏览器JavaScript调试功能无法使用解决方案
Sep 18 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面向对象概念
2011/11/06 PHP
php命令行用法入门实例教程
2014/10/27 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
Python中模块string.py详解
2017/03/12 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
python global和nonlocal用法解析
2020/02/03 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
机电一体化专业应届生求职信
2013/11/27 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
个人借条范本
2015/05/25 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS