JavaScript数组去重的五种方法

yizhihongxing

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

相关文章

  • Javascript 之封装(Package)

    Javascript 之封装(Package) 在编程中,封装是重要的概念之一,它可以避免代码的重复,提高代码的可维护性和可复用性。本篇教程将介绍Javascript中的封装,重点讲解在Javascript中如何将多个函数和变量进行封装打包,以便于代码的复用和维护。 一、Javascript中的私有变量和私有函数 Javascript中并不存在真正意义上的私…

    JavaScript 2023年5月27日
    00
  • 详解Js 根据文件夹目录获取Json数据输出demo

    下面是详解 “JS 根据文件夹目录获取 Json 数据输出 demo” 的完整攻略。 1. 概述 本攻略主要讲解如何使用 JS 根据文件夹目录获取 json 数据,最终输出到页面中。具体实现方式是对文件夹目录进行遍历,生成对应的 json 数据,然后输出到页面中。 2. 准备工作 在开始之前,需要准备一些开发环境和依赖: Node.js,用于在后台生成 js…

    JavaScript 2023年5月27日
    00
  • javascript实现设置、获取和删除Cookie的方法

    下面是关于“JavaScript实现设置、获取和删除Cookie的方法”的完整攻略。 设置Cookie Cookie是HTTP协议提供的一种状态管理机制。可以通过JS设置Cookie来在浏览器端存储一些信息。在JavaScript中,设置Cookie主要包括三个步骤: 将需要存储的数据转换为字符串格式。 将存储字符串写入Cookie。 设置Cookie的过期…

    JavaScript 2023年6月11日
    00
  • 详解JS实现系统登录页的登录和验证

    下面是我对于“详解JS实现系统登录页的登录和验证”的完整攻略,具体包含以下内容: 一、前置准备 在开始讲解实现系统登录页的登录和验证的具体流程之前,我们需要进行一些前置准备: 1.1 编辑器 首先,我们需要使用一款文本编辑器来编写我们的代码,常见的编辑器有Visual Studio Code、Sublime Text、Atom等,您可以根据自己的习惯选择任意…

    JavaScript 2023年6月10日
    00
  • JavaScript 设计模式之洋葱模型原理及实践应用

    JavaScript 设计模式之洋葱模型原理及实践应用 什么是洋葱模型 洋葱模型是一种JavaScript设计模式,也被称为“拦截器模式”或“过滤器模式”。其原理是将多个操作分别封装在不同的层级中,从外到内形成一层层的管道,每个操作都可以在管道的中间处理数据,并将数据传递到下一层操作中。 在洋葱模型中,通常会使用一个回调函数作为管道的最后一层,它接收处理后的…

    JavaScript 2023年6月10日
    00
  • JavaScript高级程序设计(第3版)学习笔记7 js函数(上)

    JavaScript高级程序设计(第3版)学习笔记7 js函数(上) 函数的定义 在JavaScript中,函数可通过以下方式定义: function functionName(arg0, arg1, …, argN) { statements } 其中,函数名使用驼峰式命名规则,而参数则由逗号隔开。函数的函数体由一对花括号({…})括起来,其中包含函数…

    JavaScript 2023年5月27日
    00
  • JavaScript中原型和原型链详解

    原型和原型链是 JavaScript 中非常重要的概念,理解它们对于学习和使用 JavaScript 语言是至关重要的。下面将为大家详细讲解 JavaScript 中原型和原型链的概念。 什么是原型 在 JavaScript 中,每个对象都有一个原型,原型本质上是一个对象。对象通过原型继承属性和方法。每个新对象都隐式地引用了其构造函数的原型作为其内部对象。可…

    JavaScript 2023年6月10日
    00
  • 浅谈 JavaScript 沙箱Sandbox

    浅谈 JavaScript 沙箱Sandbox 什么是 JavaScript 沙箱? JavaScript 沙箱是一种让我们能够在安全的环境中运行 JavaScript 代码的技术。在应用中,我们要允许用户输入 JavaScript 代码,并且希望执行这些代码,但同时也必须确保用户输入的代码不会破坏应用程序或某些敏感数据。 著名的 JS 沙箱库有 Googl…

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