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日

相关文章

  • 谈谈我对JavaScript中typeof和instanceof的深入理解

    我将为你讲解“谈谈我对JavaScript中typeof和instanceof的深入理解”的完整攻略。首先我们要了解typeof和instanceof这两个操作符的意义和用法,然后结合示例进行说明。 typeof操作符 typeof是一个JavaScript内置的操作符,用于检测变量的数据类型。它返回一个字符串表示变量的数据类型。 语法 typeof 操作数…

    JavaScript 2023年6月10日
    00
  • ES7之Async/await的使用详解

    ES7之Async/await的使用详解 什么是Async/await Async/await是ES7中引入的一组用于异步操作的新关键字。它们可以让我们更方便、更优雅地处理异步代码,避免了回调地狱(callback hell)的问题。 Async/await的基本用法 要使用Async/await,我们首先需要使用async关键字定义一个异步函数,函数中使用…

    JavaScript 2023年6月10日
    00
  • JavaScript DOM 对象深入了解

    JavaScript DOM 对象深入了解 DOM(文档对象模型)是 JavaScript 访问和操作网页文档的标准。这包含了网页中所有的 HTML 元素以及它们的属性和内容。操纵 DOM 对象是前端开发中必不可少的技能之一。 DOM 对象的分类 DOM 对象可以分为以下几类: Document: 整个文档对象,即为<html>标签。 Eleme…

    JavaScript 2023年5月27日
    00
  • js模仿php中strtotime()与date()函数实现方法

    下面我来详细讲解 “js模仿php中strtotime()与date()函数实现方法”的攻略。 1. 背景介绍 在PHP语言中,有两个非常常用的日期函数,分别是strtotime()和date()函数。strtotime()函数可以将任意字符串格式的日期转换为UNIX timestamp时间戳;而date()函数则可以将UNIX timestamp格式的时间…

    JavaScript 2023年5月27日
    00
  • JavaScript中访问id对象 属性的方式访问属性(实例代码)

    JavaScript中访问id对象属性的方式,常用的有两种方法: DOM和jQuery。下面将分别介绍这两种方法的实现。 使用DOM访问id对象属性 DOM(Document Object Model) 是一种树状结构,它把HTML文档看作是一个由节点和对象组成的树形结构,通过DOM可以对HTML文档进行访问和操作。在DOM上访问id对象属性,可以使用doc…

    JavaScript 2023年5月27日
    00
  • 谈谈我对JavaScript原型和闭包系列理解(随手笔记8)

    针对“谈谈我对JavaScript原型和闭包系列理解(随手笔记8)”这个话题,我将提供以下攻略: 1. 原型 什么是原型 在JavaScript中,除了基本数据类型(Number、Boolean、String、Undefined、Null)、对象类型(Object)和函数类型(Function)外,还有一种被称为原型对象(Prototype Object)的…

    JavaScript 2023年6月10日
    00
  • 浅谈Javascript中Object与Function对象

    JavaScript中的所有数据都是对象,包括Object对象和Function对象。但是Object与Function对象不同,Object对象主要用于存储数据,而Function对象主要用于封装一些代码,实现逻辑的封装与复用。 Object对象 在JavaScript中,Object对象是所有对象的基类,其它对象都继承了Object对象。Object对象…

    JavaScript 2023年5月27日
    00
  • 改变checkbox默认选中状态及取值的实现代码

    下面我将为你详细讲解如何改变checkbox默认选中状态及取值的实现代码。 修改checkbox默认选中状态 通过HTML的checked属性 checkbox的默认选中状态可以通过HTML的checked属性来设置。该属性值为true时,checkbox为选中状态;为false时,checkbox为未选中状态。如下所示为一个未选中的checkbox: &l…

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