javascript数组去重方法总结(推荐)

作者:风语1201 时间:2024-04-17 10:31:22 

 第一种--对象键值去重


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数组去重方法详解整合网站的支持!

来源:https://www.cnblogs.com/windspeech/p/10485088.html

标签:javascript,数组去重
0
投稿

猜你喜欢

  • 滑动验证码的设计与理解

    2022-09-18 08:34:28
  • python 在某.py文件中调用其他.py内的函数的方法

    2021-02-25 23:56:09
  • MySQL数据库远程访问权限设置方式

    2024-01-22 06:58:43
  • python实现批量转换文件编码(批转换编码示例)

    2023-07-28 22:03:47
  • vue+elementUI实现动态面包屑

    2024-05-02 17:11:02
  • 解决GOPATH在GOLAND中的坑

    2023-07-12 23:46:16
  • python中id函数运行方式

    2021-12-27 14:03:50
  • oracle 在一个存储过程中调用另一个返回游标的存储过程

    2009-09-26 18:54:00
  • Python闭包之返回函数的函数用法示例

    2022-12-09 18:50:41
  • TensorFlow tf.nn.max_pool实现池化操作方式

    2021-08-20 20:36:45
  • Python中torch.norm()用法解析

    2021-12-01 09:42:43
  • MYSQL每隔10分钟进行分组统计的实现方法

    2024-01-22 13:56:42
  • python实现unicode转中文及转换默认编码的方法

    2021-05-02 22:19:59
  • mysql字符集和数据库引擎修改方法分享

    2024-01-21 22:02:49
  • Go语言生成随机数的方法

    2023-08-28 20:11:10
  • Python采集二手车数据的超详细讲解

    2022-09-23 00:58:22
  • Go 处理大数组使用 for range 和 for 循环的区别

    2024-04-28 09:18:59
  • vue使用pdf.js预览pdf文件的方法

    2024-04-27 16:06:24
  • python算法题 链表反转详解

    2021-01-26 11:47:35
  • Python 下载Bing壁纸的示例

    2023-11-20 00:14:41
  • asp之家 网络编程 m.aspxhome.com