JavaScript数组去重的五种方法

下面我将详细讲解“JavaScript数组去重的五种方法”的完整攻略,包含以下五种去重方法:

1. 利用Set去重

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

利用Set的特性,去重后可直接将Set对象转为数组。

2. 利用reduce函数去重

const arr = [1, 2, 3, 3, 4, 4, 5];
const arrUnique = arr.reduce((prev, cur) => {
  if (!prev.includes(cur)) {
    prev.push(cur);
  }
  return prev;
}, []);
console.log(arrUnique); // [1, 2, 3, 4, 5]

reduce函数可拥有一个初始值,遍历时将数组中的每个元素与初始值作比较,筛选出不重复的元素。

3. 利用filter函数去重

const arr = [1, 2, 3, 3, 4, 4, 5];
const arrUnique = arr.filter((val, index, arr) => arr.indexOf(val) === index);
console.log(arrUnique); // [1, 2, 3, 4, 5]

通过indexOf判断元素的位置与当前index是否一样,去除重复元素。

4. 利用Object键值对去重

const arr = [1, 2, 3, 3, 4, 4, 5];
const obj = {};
const arrUnique = [];
arr.forEach(item => {
  if (!obj[item]) {
    arrUnique.push(item);
    obj[item] = 1;
  }
});
console.log(arrUnique); // [1, 2, 3, 4, 5]

利用对象的键值特性,去重后用数组存储。

5. 利用Map去重

const arr = [1, 2, 3, 3, 4, 4, 5];
const map = new Map();
const arrUnique = [];
arr.forEach(item => {
  if (!map.has(item)) {
    map.set(item, true);
    arrUnique.push(item);
  }
});
console.log(arrUnique); // [1, 2, 3, 4, 5]

利用Map对象的key值特性,去重后用数组存储。

以上就是五种JS数组去重的方法,可以根据实际情况选择不同的方法来解决去重问题。

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

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

相关文章

  • js 实现文件上传样式详情

    引言 本篇攻略将为您详细讲解如何使用 JavaScript 实现文件上传样式,主要包括以下步骤: 样式设计 上传文件处理 实现上传进度条 处理上传状态 同时,为了让读者更好理解,我们将提供两条关于 JavaScript 实现文件上传样式的示例,希望能为您带来帮助。 样式设计 在实现样式前,我们需要先确定好样式。常见的文件上传样式一般都是基于 input 标签…

    JavaScript 2023年5月27日
    00
  • js类定义函数时用prototype与不用的区别示例介绍

    当我们定义一个 JavaScript 的对象时,可以使用构造函数对其进行初始化,也可以使用 prototype 扩展对象,JavaScript 中的类的定义可以使用 prototype 与不使用 prototype 两种方式。 使用 prototype 的方式,代码可读性好,易于维护。同时可以减少对象的内存占用,避免过多的类定义,同时可以节省执行时间。 不使…

    JavaScript 2023年6月11日
    00
  • js实现倒计时及时间对象

    下面是详细讲解“JS实现倒计时及时间对象”的完整攻略。 时间对象 在 JavaScript 中,可以使用内置的时间对象 Date 来处理日期和时间。所以,我们可以借助 Date 对象来实现倒计时。 获取当前时间 首先,我们需要获取当前的时间。使用 new Date() 可以获取当前的日期和时间。 let now = new Date(); // 获取当前时间…

    JavaScript 2023年5月27日
    00
  • js中如何对url进行编码和解码

    在 JavaScript 中,有两种方式可以对 URL 进行编码和解码,分别是 encodeURI() 和 encodeURIComponent()。 encodeURI() encodeURI() 方法用于将 URI (Uniform Resource Identifier) 进行编码,但是不会对一些特殊字符 (;,/?:@&=+$#) 进行编码。…

    JavaScript 2023年5月20日
    00
  • ScrollDown的基本操作示例

    关于”ScrollDown的基本操作示例”的完整攻略,可以按照以下步骤进行: 1. 打开ScrollDown 在浏览器中输入ScrollDown的地址,即可进入。 2. 查看菜单栏 在网页的菜单栏中,有多个选项,包括: Home Features Examples Documentation Support 3. 查看示例及其操作 在菜单栏中选择”Examp…

    JavaScript 2023年6月10日
    00
  • javascript异步编程的六种方式总结

    JavaScript异步编程的六种方式总结 随着现代Web应用程序变得越来越复杂,异步编程成为了必不可少的开发模式。在JavaScript中,我们可以通过多种方式来实现异步编程。本文将介绍JavaScript中的六种常见方式来处理异步编程。 1. 回调函数 回调函数是这六种方式中应用最广泛的一种方式。回调函数是将一个函数作为参数传递给另一个函数,在异步操作完…

    JavaScript 2023年5月27日
    00
  • 前端组件化基础知识详细讲解

    前端组件化基础知识详细讲解 什么是前端组件化 前端组件化,是一种将页面拆分成多个可重用组件的开发方式。这种方式将页面抽象为一系列具有独立功能和样式的小组件,而这些组件可以在不同的页面中重复使用和组合,实现了代码的复用和模块化。 组件的基本要素 在前端组件化中,组件是构成页面的基本单位。组件有三个基本要素: HTML 结构:组件必须被封装在一个 HTML 元素…

    JavaScript 2023年6月11日
    00
  • JS前后端实现身份证号验证代码解析

    下面是“JS前后端实现身份证号验证代码解析”的完整攻略。 前言 身份证号是人们最常用的个人身份证明,因此在各个业务场景中,我们经常需要对输入的身份证号进行格式验证。本文将介绍如何使用 JavaScript 在前后端实现身份证号验证,帮助开发者更好地应对业务需求。 方案概述 实现身份证号验证的主要过程如下: 在前端通过 JavaScript 判断用户输入的身份…

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