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

下面我将详细讲解“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日

相关文章

  • Javascript 跨域访问解决方案

    对于Javascript跨域访问解决方案,有以下几个解决办法: JSONP JSONP (JSON with padding)是一种解决跨域访问的方式,它实现跨域访问的技术手段是通过动态创建 标签,通过网络请求获取数据,然后通过回调函数(callback)的方式将数据返回到当前页面中。 示例一: 假设我们有一个需要访问的接口地址为:http://www.te…

    JavaScript 2023年6月11日
    00
  • javaScript合并对象的多种方式及知识扩展

    JavaScript合并对象的多种方式及知识扩展 什么是对象合并 在JavaScript中,合并对象指的是将多个对象中的属性和方法,合并成一个新的对象。这在实际应用中非常常见,特别是在处理大型复杂对象时,为了防止属性名冲突或简化处理逻辑,我们经常需要将多个对象合并成一个对象。 合并对象的多种方式 方法一:Object.assign Object.assign…

    JavaScript 2023年5月27日
    00
  • node.js Web应用框架Express入门指南

    Node.js Web应用框架Express入门指南 Express是基于Node.js开发的Web应用框架,它提供了一组API来帮助开发者快速地创建Web应用程序。本指南将介绍如何入门使用Express,包括安装、配置、路由、模板引擎等方面的内容。 安装Express 首先需要安装Node.js和npm。安装完成后,可打开终端窗口,输入以下命令安装Expr…

    JavaScript 2023年5月27日
    00
  • Vue联动Echarts实现数据大屏展示

    下面是“Vue联动Echarts实现数据大屏展示”的完整攻略。 一、什么是Vue联动Echarts Vue是一款流行的前端框架,Echarts是一款流行的数据可视化库。Vue联动Echarts的实现,就是将Vue与Echarts进行结合,实现数据的动态展示和交互。 二、如何实现Vue联动Echarts 1. 引入Echarts 在项目中引入Echarts库,…

    JavaScript 2023年6月11日
    00
  • 在ASP.NET MVC项目中使用RequireJS库的用法示例

    下面是在 ASP.NET MVC 项目中使用 RequireJS 库的使用示例: 简介 RequireJS 是一个 JavaScript 模块加载器,它可以让开发者更加轻松地管理和加载 JavaScript 模块。在大型项目中,使用 RequireJS 可以让代码结构更加清晰,便于维护和扩展。 在 ASP.NET MVC 项目中,可以使用 RequireJS…

    JavaScript 2023年5月19日
    00
  • 用JavaScript对JSON进行模式匹配(Part 1-设计)

    为了讲解“用JavaScript对JSON进行模式匹配(Part 1-设计)”的完整攻略,我们需要分为以下几个部分来详细讲解: 确定匹配规则:定义模式和筛选条件。 认识JSON格式:了解JSON是什么,以及如何在JavaScript中访问和操作JSON。 设计匹配方案:选择合适的JavaScript库进行匹配和解析。 示例演示:通过两个实例来展示如何使用Ja…

    JavaScript 2023年5月27日
    00
  • JavaScript函数中上下文有哪些规则

    JavaScript中的函数实际上是对象,和其他对象一样在创建时会得到一个[[Scope]]属性,用于指向函数创建时的作用域链。这个作用域链保存了在函数创建时的变量对象和外部词法环境的引用关系。在函数调用时,JavaScript会创建一个活动对象(也称为执行上下文),用于保存函数执行过程中产生的变量对象、函数调用参数、this指向等信息。 JavaScrip…

    JavaScript 2023年5月27日
    00
  • js中document.getElementById(id)的具体用法

    document.getElementById(id)是一种常用的JavaScript方法,用于通过指定id获得HTML文档中的元素。在此提供了具体用法的攻略: 使用方法 在JavaScript中使用 document.getElementById(id) 时,需要指定查找的元素的id,访问到元素的方法是通过指定的id来访问。 示例代码如下: // 指定id…

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