javascript数组去重方法汇总

JavaScript数组去重方法汇总

在JavaScript中,数组是一种非常重要的数据类型,经常在实际的开发中用来存储一系列数据。但是,有时候我们需要对数组进行去重操作,即只保留数组中的不重复元素。本文将介绍几种常用的JavaScript数组去重方法。

1.使用Set对象

使用ES6中新增的Set对象可以非常方便地对数组进行去重。Set对象中的所有元素都是唯一的,可以保证去重后的数组中不会有重复元素。

示例代码如下:

let arr = [1, 2, 3, 2, 1];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3]

上述代码中,先定义了一个包含重复元素的数组arr,然后通过...运算符和Set对象,将数组去重后得到不重复元素的数组uniqueArr,并输出到控制台。

2.使用Array.prototype.filter()

使用Array.prototype.filter()方法可以比较简单地实现数组去重操作。该方法会返回一个新的、根据指定条件过滤后的数组,可以根据数组的indexOf方法来过滤掉重复元素。

示例代码如下:

let arr = [1, 2, 3, 2, 1];
let uniqueArr = arr.filter((item, index, arr) => {
  return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3]

上述代码中,filter()方法接收一个回调函数作为参数,该回调函数中的三个参数分别表示当前元素、当前元素的索引和当前数组。通过对当前元素在数组中第一次出现的位置进行比较,可以过滤掉重复元素,最终得到去重后的数组uniqueArr,并输出到控制台。

3.使用for循环嵌套比较

当数组中包含的元素不是基本类型(如对象等)时,上述方法不能实现去重。此时,可以使用for循环嵌套比较的方法来实现数组去重。遍历原数组,将每个元素与其后面的所有元素依次进行比较,如果重复则将其剔除。

示例代码如下:

let arr = [1, 2, 3, { name: 'Tom' }, { name: 'Tom' }, 1];
let uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  for (let j = i + 1; j < arr.length; j++) {
    if (arr[i] === arr[j]) {
      j = ++i;
    }
  }
  uniqueArr.push(arr[i]);
}
console.log(uniqueArr); // [1, 2, 3, { name: 'Tom' }]

上述代码中,先定义了一个包含重复元素和对象的数组arr,然后使用for循环嵌套比较的方法去除数组中的重复元素,并将去重后的元素添加到uniqueArr数组中,最终输出到控制台。

结语

本文介绍了几种常用的JavaScript数组去重方法,包括使用Set对象、Array.prototype.filter()方法以及for循环嵌套比较的方法。对于不同的情况,可以选择不同的去重方法来实现需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript数组去重方法汇总 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • javascript Array.remove() 数组删除

    JavaScript数组删除操作 JavaScript中提供了多种方法对数组进行删除操作,其中包括使用 splice 方法进行删除、使用 shift 和 pop 方法删除数组的第一项或最后一项,以及使用 ES6 中的 filter 方法进行筛选删除等方法。而 Array.remove() 方法是一种自定义的数组删除方法,下面进行详细说明。 基本语法 使用 A…

    JavaScript 2023年5月27日
    00
  • JS判断页面加载状态以及添加遮罩和缓冲动画的代码

    JS判断页面加载状态以及添加遮罩和缓冲动画的代码是前端开发中常见的需求。以下为完整攻略。 判断页面加载状态 判断页面的加载状态可以使用window对象的load和DOMContentLoaded事件。需要注意的是,load事件会在页面的所有资源(包括图片、音频、视频等)都加载完成后才触发,而DOMContentLoaded事件则是在页面DOM结构加载完成后就…

    JavaScript 2023年6月10日
    00
  • JS实现简单的星期格式转换功能示例

    题目要求的是JS实现简单的星期格式转换功能示例,下面我将从以下四个方面来详细讲解这个问题: 需求分析和函数设计 实现步骤和示例说明 总结和思考 参考资料 需求分析和函数设计 首先,我们需要明确这个功能的需求。给定一个数字,代表星期几,需要将其转换为对应的星期名称。例如 1 对应 “星期一”,2 对应 “星期二”,3 对应 “星期三”等。 基于这个需求,我们需…

    JavaScript 2023年5月27日
    00
  • js判断一个字符串是否包含一个子串的方法

    要判断一个字符串是否包含一个子串,可以使用JavaScript中的indexOf()方法或者includes()方法。 使用indexOf()方法 indexOf()方法可以在一个字符串中查找给定的子串,如果找到了则返回该子串第一次出现的位置,如果没有找到则返回-1。因此,我们可以根据该方法返回的结果来判断该子串是否包含在目标字符串中。 代码示例: let …

    JavaScript 2023年5月28日
    00
  • Javascript 类型转换、封闭函数及常见内置对象操作示例

    针对“Javascript 类型转换、封闭函数及常见内置对象操作示例”的完整攻略,以下是详细的讲解: 一、Javascript类型转换 Javascript是一门动态类型语言,其变量类型的值可以根据上下文自动判断,可以进行隐式转换,也可以手动进行显式转换。 1. 隐式转换 在Javascript中,隐式类型转换是将一种类型的数据转换为另一种类型的数据,且数据…

    JavaScript 2023年5月27日
    00
  • javascript:void(0)的真正含义实例分析

    JavaScript:void(0)的真正含义实例分析 在网页编程中,很多人都会用到 javascript:void(0) 这个常用的代码,这个代码经常用来作为 a 标签的 href 属性的值。那么这个字符串的含义究竟是什么呢?下面详细讲解一下。 JavaScript:void(0) 的含义 其实,javascript:void(0) 就是一句标准的 Jav…

    JavaScript 2023年6月11日
    00
  • javascript实现数组中的内容随机输出

    下面是Javascript实现数组中内容随机输出的完整攻略: 1. 生成随机数 Javascript标准库中有一个Math对象,可以使用Math.random()方法生成[0,1)之间的随机数。那么我们只需要将这个数乘以数组的长度,然后向下取整,就可以得到一个数组下标的随机数。 var arr = [‘apple’, ‘banana’, ‘orange’, …

    JavaScript 2023年5月27日
    00
  • JavaScript中按位“异或”运算符使用介绍

    JavaScript中按位“异或”运算符使用介绍 在JavaScript中,按位“异或”运算符是一种二进制运算符,用符号” ^ “表示,作用是对两个数的按位进行异或运算,返回结果。本文将详细介绍JavaScript中按位“异或”运算符的使用,包括什么是按位“异或”运算符、按位“异或”运算符的运算规则、按位“异或”运算符的一些应用场景。 什么是按位“异或”运算…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部