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带按钮的提示框可供选择示例代码
Sep 17 Javascript
jquery选择符快速提取web表单数据示例
Mar 27 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
Mar 03 Javascript
JS实现向表格行添加新单元格的方法
Mar 30 Javascript
基于jQuery插件实现点击小图显示大图效果
May 11 Javascript
Javascript基础_标记文字的实现方法
Jun 14 Javascript
JS随机打乱数组的方法小结
Jun 22 Javascript
AngularJS ng-app 指令实例详解
Jul 30 Javascript
JS实现的数字格式化功能示例
Feb 10 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
Mar 14 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
Jun 14 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
May 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
中国第一家无线电行
2021/03/01 无线电
虚拟主机中对PHP的特殊设置
2006/10/09 PHP
php创建多级目录代码
2008/06/05 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
php计算title标题相似比的方法
2015/07/29 PHP
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
Python的Flask开发框架简单上手笔记
2015/11/16 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
聘任书的写作格式及范文
2014/03/29 职场文书
房地产推广策划方案
2014/05/19 职场文书
护士工作心得体会
2016/01/25 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
超级详细实用的pycharm常用快捷键
2021/05/12 Python