js数组去重常见的方法汇总(7种)

yizhihongxing

下面我将详细讲解“js数组去重常见的方法汇总(7种)”。

一、引言

在JavaScript的实际开发中,经常会遇到需要对数组进行去重操作的情况。而JavaScript提供了多种方法来进行数组去重操作,下面将详细介绍七种常见的方法。

二、使用Set

Set是ES6新引入的一种集合数据类型,它可以存储任意类型的唯一值。使用Set可以很方便地实现数组去重,只需要将数组转化成Set对象,然后再转化回数组即可。

示例代码如下:

let arr = [1, 2, 3, 2, 1];
let set = new Set(arr); //创建Set
let newArr = Array.from(set); //将Set转为数组

console.log(newArr); //输出[1, 2, 3]

三、使用indexOf

利用indexOf方法来判断一个元素在数组中是否存在,可以很方便地实现数组去重。

示例代码如下:

let arr = [1, 2, 3, 2, 1];
let newArr = [];

for(let i = 0; i < arr.length; i++){
    if(newArr.indexOf(arr[i]) === -1){
        newArr.push(arr[i]);
    }
}

console.log(newArr); //输出[1, 2, 3]

四、使用includes

includes方法是ES7引入的新方法,用来判断一个数组是否包含某个元素。利用它也可以实现数组去重。

示例代码如下:

let arr = [1, 2, 3, 2, 1];
let newArr = [];

for(let i = 0; i < arr.length; i++){
    if(!newArr.includes(arr[i])){
        newArr.push(arr[i]);
    }
}

console.log(newArr); //输出[1, 2, 3]

五、使用filter

使用filter可以很方便地筛选出数组中符合条件的元素,利用这一特性也可以实现数组去重。

示例代码如下:

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

console.log(newArr); //输出[1, 2, 3]

六、使用reduce

使用reduce可以很方便地将数组中的元素逐个累加,并返回一个值。结合indexOf方法也可以实现数组去重。

示例代码如下:

let arr = [1, 2, 3, 2, 1];
let newArr = arr.reduce((prev, cur) => {
    if(prev.indexOf(cur) === -1){
        prev.push(cur);
    }
    return prev;
}, []);

console.log(newArr); //输出[1, 2, 3]

七、使用Map

Map也可以用来实现数组去重,它类似于Set,但是可以自定义键值对,因此更加灵活。

示例代码如下:

let arr = [1, 2, 3, 2, 1];
let map = new Map();
let newArr = [];

for(let i = 0; i < arr.length; i++){
    if(!map.has(arr[i])){
        map.set(arr[i], true);
        newArr.push(arr[i]);
    }
}

console.log(newArr); //输出[1, 2, 3]

结束语

以上便是js数组去重常见的七种方法汇总。在实际开发中,我们可以根据具体业务需求和数组长度等因素来选择适合的去重方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js数组去重常见的方法汇总(7种) - Python技术站

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

相关文章

  • 用Golang运行JavaScript的实现示例

    下面是 “用Golang运行JavaScript的实现示例”的完整攻略。 什么是Golang Go语言(Golang)是一种面向现代化Web应用开发的开源编程语言,由Google公司开发并于2009年11月正式发布,被描述为既具有静态语言的安全性和严谨性,又具有动态语言的高效和可读性。 Golang运行JavaScript的实现示例 Golang 好在处理高…

    JavaScript 2023年5月28日
    00
  • JavaScript实现简单图片轮播效果

    当实现一个简单的图片轮播效果时,我们通常需要考虑以下几个方面: 如何获取要展示的图片。这个过程通常需要先获取图片的地址,然后将图片地址插入到HTML中,再将图片展示出来。 如何实现图片轮播。这个过程通常需要对图片进行切换,可以考虑使用CSS动画或者JavaScript控制图片的切换。 下面是一个基于JavaScript实现简单图片轮播效果的攻略: 步骤一:准…

    JavaScript 2023年6月11日
    00
  • javascript点击才出现验证码

    下面是JavaScript点击才出现验证码的完整攻略: 1. 编写HTML页面 我们需要在HTML页面中添加一个点击事件和一个用于显示验证码的容器。可以使用以下代码: <!DOCTYPE html> <html> <head> <title>JavaScript点击才出现验证码示例</title> …

    JavaScript 2023年6月10日
    00
  • Javascript Math asin() 方法

    JavaScript中的Math.asin()方法用于返回一个数的反正弦值,即弧度值。该方法接受一个参数,即要计算反正弦值的数值。以下是关于Math.asin()方法的完整攻略,包括两个示例。 JavaScript Math对象的asin()方法 JavaScript Math对象中的asin()方法用于返回一个数的反正弦值,即弧度值。该方法接受一个参数,即…

    JavaScript 2023年5月11日
    00
  • 判断某个字符在一个字符串中是否存在的js代码

    判断某个字符在一个字符串中是否存在通常使用JavaScript内置的indexOf()方法。该方法返回要查找的字符第一次出现的索引位置。当要查找的字符不在字符串中时,该方法返回-1。 以下是示例代码: const str = ‘This is a sample string’; const char = ‘a’; if (str.indexOf(char) …

    JavaScript 2023年5月28日
    00
  • Javascript数组循环遍历之forEach详解

    Javascript数组循环遍历之forEach详解 foreEach()方法的基本使用 JavaScript中的数组可以使用forEach()方法进行遍历,forEach()方法接收一个函数作为参数,该函数将在数组中的每个元素上运行,基本语法如下: array.forEach(function(currentValue, index, arr), this…

    JavaScript 2023年5月27日
    00
  • JavaScript中的单引号和双引号报错的解决方法

    JavaScript中的单引号和双引号都可以用于表示字符串,但是如果在使用时不注意规范,就可能会出现报错的情况。下面介绍一下在JavaScript中解决使用单引号和双引号时,可能会出现的报错情况以及解决方法。 1.问题描述 在JavaScript中,使用单引号或双引号需要注意引号的匹配问题。例如: var str = ‘This is a string&qu…

    JavaScript 2023年5月18日
    00
  • 全面理解JavaScript中的闭包

    闭包(Closure)是JavaScript中非常重要的一个概念,由于其灵活性和特殊性,很多初学者和部分开发者难以理解。理解闭包的概念对于攻克JavaScript的高级知识和框架有很大帮助。下面是全面理解JavaScript中的闭包的完整攻略: 一、什么是闭包 闭包指的是能够访问自由变量(非全局变量,即在外层函数中定义的变量)的函数。换句话说,如果一个函数内…

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