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,水平有待提高
Jan 31 Javascript
JavaScript 面向对象之命名空间
May 04 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
May 13 Javascript
使用jQuery避免鼠标双击的解决方案
Aug 21 Javascript
Knockout数组(observable)使用详解示例
Nov 15 Javascript
使用JQuery FancyBox插件实现图片展示特效
Nov 16 Javascript
jquery获取所有选中的checkbox实现代码
May 26 Javascript
jQuery简单实现列表隐藏和显示效果示例
Sep 12 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
May 15 jQuery
Angular2里获取(input file)上传文件的内容的方法
Sep 05 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
Apr 30 Javascript
JS使用正则表达式判断输入框失去焦点事件
Oct 16 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 zend解密软件绿色版测试可用
2008/04/14 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
2018/03/08 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python PO设计模式的具体使用
2019/08/16 Python
Django数据统计功能count()的使用
2020/11/30 Python
python中K-means算法基础知识点
2021/01/25 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
利用指针变量实现队列的入队操作
2012/04/07 面试题
大学生的自我鉴定范文
2014/01/21 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
校庆团日活动总结
2014/08/28 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
医德医风学习心得体会
2016/01/25 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
Java基础——Map集合
2022/04/01 Java/Android