JS数组去重的常用4种方法

下面我就为大家详细讲解“JS数组去重的常用4种方法”的完整攻略。

一、JS数组去重的常用4种方法

数组去重是我们在JS开发中常会用到的一个功能,下面介绍4种去重方法。

1. Set

Set是ES6新增的数据类型,它可以实现数组去重。

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

2. 数组遍历+indexOf

使用数组的indexOf方法可以判断元素是否在数组中已存在,如下所示:

let arr = [1,2,2,3,3,4,5];
let result = [];
for(let i=0; i<arr.length; i++){
    if(result.indexOf(arr[i]) === -1){
        result.push(arr[i]);
    }
}
console.log(result);  // [1, 2, 3, 4, 5]

3. 数组遍历+includes

ES6中数组新增了一个方法includes,判断元素是否存在于数组中,如下所示:

let arr = [1,2,2,3,3,4,5];
let result = [];
for(let i=0; i<arr.length; i++){
    if(!result.includes(arr[i])){
        result.push(arr[i]);
    }
}
console.log(result);  // [1, 2, 3, 4, 5]

4. 数组排序+遍历去重

将数组先进行排序,然后遍历数组,判断相邻元素是否相同,如下所示:

let arr = [1,2,2,3,3,4,5];
arr.sort();
let result = [arr[0]];
for(let i=1; i<arr.length; i++){
    if(arr[i] !== arr[i-1]){
        result.push(arr[i]);
    }
}
console.log(result);  // [1, 2, 3, 4, 5]

二、总结

通过使用上述这四种常用方法,我们可以轻松实现对数组的去重。其中Set方法是效率最高的一种方法,代码最简单。而数组遍历加includes的方法适用于较小量的数据,而排序加遍历的方法则适用于大量的数据。在实际开发中,根据实际场景选择合适的方法可以最大限度地提高代码效率和性能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS数组去重的常用4种方法 - Python技术站

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

相关文章

  • 一看就懂:jsonp详解

    一看就懂:jsonp详解 什么是JSONP JSONP(JSON with Padding)是一种跨域的数据交互方式。它利用了script标签没有跨域限制的特点,通过动态创建script标签来请求服务器返回数据,并通过回调函数来处理返回的数据。 JSONP的原理 在客户端动态创建一个script标签,其中的src属性指向服务器端数据接口,并在接口地址中指定回…

    JavaScript 2023年5月27日
    00
  • 利用js编写网页进度条效果

    编写网页进度条效果通常需要用到JavaScript语言。下面是利用JS编写网页进度条效果的几个步骤: 1. 创建进度条的HTML布局 首先,你需要确定进度条的位置和尺寸,并在HTML中创建一个<div>元素作为进度条容器,在这个容器内放置一个表示进度的<div>子元素。 示例1:简单的进度条布局 <div class=&quot…

    JavaScript 2023年6月11日
    00
  • JavaScript函数this指向问题详解

    JavaScript函数this指向问题详解 JavaScript 中的 this 关键字经常让初学者感到困惑或者造成一些常见错误。这篇文章将帮助你全面理解 this 的指向问题以及如何正确使用它。 this 的指向 this 的实际指向是在函数被调用时才能确定的,并且在不同的情况中,其指向也不同。 在全局作用域中 在全局作用域(在任何函数之外)中,this…

    JavaScript 2023年5月27日
    00
  • JavaScript执行机制详细介绍

    JavaScript的执行机制是指代码在运行时的处理过程,包括变量声明、函数声明、作用域、this指向等方面。下面我将结合示例进行详细介绍: 变量声明 在JavaScript中,变量可以使用var、let、const关键字声明。其中,var关键字声明的变量会进行变量提升,即在代码执行前就已经声明,但是未赋值。let和const声明的变量不会进行变量提升,必须…

    JavaScript 2023年5月27日
    00
  • 关于B/S判断浏览器断开的问题讨论

    关于 B/S 判断浏览器断开的问题讨论 问题背景 在 B/S 架构中,当浏览器与服务器之间建立连接后,如何判断浏览器是否已经断开连接? 问题分析 服务器无法直接获取浏览器的状态,因此需要以下三种方法来判断浏览器连接是否仍然有效: 心跳检测 长轮询 WebSocket 1. 心跳检测 心跳检测的原理是在一定时间间隔内,服务器发送一个特定的信息(如特定数据包)到…

    JavaScript 2023年5月28日
    00
  • Javascript 使用function定义构造函数

    Javascript 使用function定义构造函数 在Javascript中,我们可以使用function来定义一个构造函数,从而创建对象实例。这种方式被称为使用构造函数模式。 定义构造函数 定义一个构造函数很简单,只需要使用function关键字,紧接着是函数名和括号,然后在函数体内部定义对象的属性和方法即可。 function Person(name…

    JavaScript 2023年5月27日
    00
  • Javascript里的两种使用正则的方法

    当我们需要在JavaScript中进行字符串匹配、替换或者提取操作时,常常需要用到正则表达式。在JavaScript中,我们可以使用两种不同的方法来使用正则表达式。 方法一:RegExp对象的方法 RegExp对象是JavaScript内置的正则表达式对象,我们可以使用它的方法来处理字符串。 1. 创建RegExp对象 我们可以使用RegExp对象的构造函数…

    JavaScript 2023年6月10日
    00
  • JavaScript基础之Array forEach使用示例

    当我们学习JavaScript的时候,需要掌握数组的常用操作,其中forEach是非常常用的方法。本篇攻略将详细讲解如何使用Array forEach方法。 forEach简介 forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。通过forEach方法,能够对数组中的元素进行操作,使其更加灵活。 forEach方法的参数 forEach(…

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