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_11_constructor实现原理
Oct 18 Javascript
基于jquery可配置循环左右滚动例子
Sep 09 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 Javascript
js操作css属性实现div层展开关闭效果的方法
May 11 Javascript
Kindeditor在线文本编辑器如何过滤HTML
Apr 14 Javascript
Node.js的Mongodb使用实例
Dec 30 Javascript
JavaScript设计模式之单例模式详解
Jun 09 Javascript
JavaScript中使用参数个数实现重载功能
Sep 01 Javascript
Postman模拟发送带token的请求方法
Mar 31 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
May 31 Javascript
Vue循环组件加validate多表单验证的实例
Sep 18 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
Jul 24 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
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
php post换行的方法
2020/02/03 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
JS Timing
2007/04/21 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
js简易版购物车功能
2017/06/17 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
微信小程序框架的页面布局代码
2019/08/17 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
python查看列的唯一值方法
2018/07/17 Python
python中的for循环
2018/09/28 Python
python3下载抖音视频的完整代码
2019/06/05 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
法律进机关实施方案
2014/03/12 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
《搭石》教学反思
2016/02/18 职场文书
详解python网络进程
2021/06/15 Python
P站美图推荐——变身女主角特辑
2022/03/20 日漫