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 CSS修改学习第一章 查找位置
Feb 19 Javascript
javascript函数中的arguments参数
Aug 01 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
Nov 28 Javascript
我的Node.js学习之路(二)NPM模块管理
Jul 06 Javascript
推荐8款jQuery轻量级树形Tree插件
Nov 12 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
深入理解jQuery事件绑定
Jun 02 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
Nov 02 Javascript
vue2.0 和 animate.css的结合使用
Dec 12 Javascript
基于Fixed定位的框选功能的实现代码
May 13 Javascript
微信小程序tabBar设置实例解析
Nov 14 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使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
jquery 页面全选框实践代码
2010/04/02 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
Python CSV模块使用实例
2015/04/09 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
python实现清屏的方法
2015/04/30 Python
python提取页面内url列表的方法
2015/05/25 Python
python的keyword模块用法实例分析
2015/06/30 Python
树莓派实现移动拍照
2019/06/22 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
编码实现字符串转整型的函数
2012/06/02 面试题
机械设计专业应届生求职信
2013/11/21 职场文书
信息管理员岗位职责
2013/12/01 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
优秀教师单行材料
2014/12/16 职场文书
社区母亲节活动总结
2015/02/10 职场文书
法院执行局工作总结
2015/08/11 职场文书
旅行社计调工作总结
2015/08/12 职场文书