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 相关文章推荐
Ext javascript建立超链接,进行事件处理的实现方法
Mar 22 Javascript
基于jquery的动态创建表格的插件
Apr 05 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
jquery 操作两个select实现值之间的互相传递
Mar 07 Javascript
JS获得选取checkbox整行数据的方法
Jan 28 Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 Javascript
全面解析Bootstrap表单使用方法(表单样式)
Nov 24 Javascript
学习JavaScript设计模式(策略模式)
Nov 26 Javascript
node.js微信公众平台开发教程
Mar 04 Javascript
微信小程序中的onLoad详解及简单实例
Apr 05 Javascript
vue.js如何将echarts封装为组件一键使用详解
Oct 10 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
Apr 13 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
Zerg建筑一览
2020/03/14 星际争霸
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
python实现web方式logview的方法
2015/08/10 Python
python实现Decorator模式实例代码
2018/02/09 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
python3图片文件批量重命名处理
2019/10/31 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
应聘护士自荐信
2013/10/21 职场文书
鼋头渚导游词
2015/02/05 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
利用Python多线程实现图片下载器
2022/03/25 Python
create-react-app开发常用配置教程
2022/06/25 Javascript
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang