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中的Screen屏幕对象
Jan 16 Javascript
获取焦点时,利用js定时器设定时间执行动作
Apr 02 Javascript
基于jquery的时间段实现代码
Aug 02 Javascript
无限树Jquery插件zTree的常用功能特性总结
Sep 11 Javascript
js生成的验证码的实现与技术分析
Sep 17 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
js实现简单折叠、展开菜单的方法
Aug 28 Javascript
javascript中的作用域和闭包详解
Jan 13 Javascript
JavaScript动态加载重复绑定问题
Apr 01 Javascript
node 命令方式启动修改端口的方法
May 12 Javascript
详解Angular如何正确的操作DOM
Jul 06 Javascript
Vue.js样式动态绑定实现小结
Jan 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
PHP中if和or运行效率对比
2014/12/12 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
python实现对csv文件的列的内容读取
2018/07/04 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
国外的一些J2EE面试题一
2012/10/13 面试题
热能动力工程毕业生自荐信
2013/11/07 职场文书
运动会通讯稿50字
2014/01/30 职场文书
司马光教学反思
2014/02/01 职场文书
信息技术教学反思
2014/02/12 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
美术教师个人工作总结
2015/02/06 职场文书
英语辞职信怎么写
2015/02/28 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
母亲节感言
2015/08/03 职场文书
总结一些Java常用的加密算法
2021/06/11 Java/Android
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python