当前位置: 首页 > 编程笔记 >

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

酆俊远
2023-03-14
本文向大家介绍javascript数组去重方法总结(推荐),包括了javascript数组去重方法总结(推荐)的使用技巧和注意事项,需要的朋友参考一下

 第一种--对象键值去重

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数组去重方法终极总结的使用技巧和注意事项,需要的朋友参考一下 有时会碰上这种需求,需要将数组中重复的元素删除掉,而只保留一个。最先想到的办法很可能就是用2个for循环来做比较然后去除掉重复的元素,代码如下所示: 方法1: 使用方法1如果碰到数据比较多时性能上会差很多。那么请继续看下面的方法。 方法2: 方法2使用了

  • 本文向大家介绍javascript数组去重方法汇总,包括了javascript数组去重方法汇总的使用技巧和注意事项,需要的朋友参考一下 javascript数组去重方法汇总 其中第1种和第3种方法都用到了数组的indexOf方法。此方法的目的是寻找存入参数在数组中第一次出现的位置。很显然,js引擎在实现这个方法的时候会遍历数组直到找到目标为止。所以此函数会浪费掉很多时间。 而第2中方法用的是has

  • 本文向大家介绍js数组去重的方法总结,包括了js数组去重的方法总结的使用技巧和注意事项,需要的朋友参考一下 一、普通的方法去重 1、简单的去重方法 2、数组下标法 3、排序后相邻去除法 4、优化遍历数组法 5.数组includes()去重 6.数组原型对象上的filter和includes方法 7.数组原型对象上的forEach和includes方法 二、原型对象去重 方法一: 思路:1)构建一个

  • 本文向大家介绍javascript数组去重的方法汇总,包括了javascript数组去重的方法汇总的使用技巧和注意事项,需要的朋友参考一下 四种算法来实现这个目的: 第一种: 第二种: 第二种改进版:    第三种:     其中第1种和第3种方法都用到了数组的indexOf方法。此方法的目的是寻找存入参数在数组中第一次出现的位置。很显然,js引擎在实现这个方法的时候会遍历数组直到找到目标为止。所

  • 本文向大家介绍JavaScript数组去重的两种方法推荐,包括了JavaScript数组去重的两种方法推荐的使用技巧和注意事项,需要的朋友参考一下 1、数组去重; Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法: 方法一:利用indexOf方法; 方法二: 方法二,总体思路是把数组元素逐个搬运到另一个数组,搬运的过程中检查这个元素是否有重复,如果有就直接丢掉。从嵌

  • 本文向大家介绍javascript数组去重的六种方法汇总,包括了javascript数组去重的六种方法汇总的使用技巧和注意事项,需要的朋友参考一下 面试前端必须准备的一个问题:怎样去掉Javascript的Array的重复项。据我所知,百度、腾讯、盛大等都在面试里出过这个题目。 这个问题看起来简单,但是其实暗藏杀机。 考的不仅仅是实现这个功能,更能看出你对计算机程序执行的深入理解。     我总共