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代码
Mar 16 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
StringTemplate遇见jQuery冲突的解决方法
Sep 22 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
使用mini-define实现前端代码的模块化管理
Dec 25 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
javascript获取select标签选中的值
Jun 04 Javascript
详解js中的apply与call的用法
Jul 30 Javascript
js 创建对象 经典模式全面了解
Aug 16 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
微信小程序 向左滑动删除功能的实现
Mar 10 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
Jan 08 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/07/22 PHP
php中动态修改ini配置
2014/10/14 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
详解Vue 如何监听Array的变化
2019/06/06 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
Python中常用的os操作汇总
2020/11/05 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
工商行政管理专业求职书
2014/05/23 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
庆祝教师节主持词
2015/07/06 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python