js数组去重的方法总结

针对“js数组去重的方法总结”这个主题,我将为大家详细讲解一些js数组去重的方法。

方法一:使用Set去重

Set 是 ES6 特性之一,可以用来去重。代码示例如下:

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

解释:使用 new Set() 去除数组中的重复元素并将其赋值给一个新的 Set 对象,然后将该对象转换为数组。

方法二:使用 filter 方法

使用 filter 方法可快速去除重复元素,代码示例如下:

let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.filter((item, index, array) => array.indexOf(item) === index); 
console.log(uniqueArr); // [1, 2, 3, 4, 5]

解释:使用 indexOf 方法查找元素在数组中的第一个位置,如果当前位置等于该元素的位置,则说明该元素是第一次出现,否则就是重复元素,这时候可以使用 filter 方法去掉。

除了以上两种方法外,还有一些其它的方法,如使用 Map,使用 reduce,使用 forEach 等。

方法三:使用 Map

使用 Map 对象去重的方法较为简单,代码示例如下:

let arr = [1, 2, 3, 3, 4, 5, 5];
let map = new Map();
let uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  if(!map.has(arr[i])){
    map.set(arr[i], true);
    uniqueArr.push(arr[i]);
  }
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]

解释:使用 Map 对象的键名去重,在循环中使用 has 方法判断是否已经存在,如果不存在则向数组中 push 该元素的值。

方法四:使用 reduce

使用 reduce 迭代器可快速去重,代码示例如下:

let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

解释:使用 reduce 方法循环数组,prev 表示上一次迭代的结果值,cur 表示当前元素的值,通过判断 prev 数组中是否包含 cur,如果包含说明已经存在该元素,则直接返回 prev 数组,如果不包含则将该元素 push 到 prev 数组中以完成去重。

以上就是我总结的 js 数组去重的方法,希望对大家有所帮助!

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

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

相关文章

  • PHP使用正则表达式获取微博中的话题和对象名

    使用正则表达式获取微博中的话题和对象名是一个常见的需求,本篇攻略将详细介绍如何使用PHP实现这一功能。 步骤一:获取微博内容 首先,我们需要获取微博的内容。可以使用curl等工具,通过API或者爬虫获取微博的HTML源代码。在本例中,我们使用curl来获取微博的HTML源代码。 $ch = curl_init(); curl_setopt($ch, CURL…

    JavaScript 2023年6月10日
    00
  • 前端面试知识点锦集(JavaScript篇)

    下面我将详细讲解“前端面试知识点锦集(JavaScript篇)”的完整攻略。 本文概述 在本篇文章中,我们将总结并详细讲解一些前端面试中常见的JavaScript知识点,包括数据类型、变量、作用域、闭包、原型链、异步编程等等。这些知识点在前端开发中非常重要,也是面试中经常会问到的内容。 JavaScript数据类型 JavaScript有七种数据类型,分别是…

    JavaScript 2023年5月18日
    00
  • 将json对象转换为字符串的方法

    将JSON对象转换为字符串通常使用JSON.stringify()方法,以下是该方法的完整攻略: 1. JSON.stringify()方法的语法 JSON.stringify()方法的语法如下: JSON.stringify(value[, replacer[, space]]) 其中,value参数表示待转换的JSON对象,必选且只能是以下类型之一:- …

    JavaScript 2023年5月27日
    00
  • js保留两位小数方法总结

    让我来详细讲解一下“js保留两位小数方法总结”的完整攻略。 一、概述 在进行数据处理的过程中,我们经常需要对数字进行保留小数位的操作。在Javascript中,保留两位小数的方法有多种。接下来就来总结一下这些常用的方法。 二、toFixed()方法 使用toFixed()方法可以将数字保留到指定的小数位数,并且返回一个字符串类型的结果。 let num = …

    JavaScript 2023年5月27日
    00
  • SSM框架整合JSP中集成easyui前端ui项目开发示例详解

    我将详细讲解“SSM框架整合JSP中集成easyui前端ui项目开发示例详解”的完整攻略。 SSM框架整合JSP中集成easyui前端ui项目开发示例详解 简介 本文将介绍如何在使用SSM框架的JSP项目中集成easyui前端UI,从而开发出更为美观的前端页面。 准备工作 在开始前,需要确保已经完成以下准备工作: 了解SSM框架的基本概念和配置方法。 了解e…

    JavaScript 2023年6月11日
    00
  • JS开发自己的类库实例分析

    JS开发自己的类库需要经过以下步骤: 步骤一:确定类库的功能 在开发类库之前,需要确定我们想要实现的功能。这些功能需要与当前市场上主流的类库有一定的区别,也可以是现有类库中不足之处的补充。例如,可以考虑开发一个支持异步请求的类库,或者是在表单验证方面做出针对性的改进。 步骤二:编写代码 确定了功能之后,就可以开始编写代码了。在编写代码的过程中,需要注意以下几…

    JavaScript 2023年5月28日
    00
  • javascript 设计模式之单体模式 面向对象学习基础

    JavaScript 设计模式之单体模式 什么是单体模式? 单体模式,也叫单例模式,是一种面向对象设计模式,它保证一个类只能有一个实例,并提供一个访问它的全局访问点。 单体模式的优点 提供了对唯一实例的受控访问。 在一个应用程序中,这样的实例很少,因为这会节约系统资源。 可以用于全局变量,避免命名空间污染。 提供了对单例对象的集中化管理。 实现单体模式 在 …

    JavaScript 2023年5月27日
    00
  • 深入剖析Java中的各种异常处理方式

    深入剖析Java中的各种异常处理方式 在Java中,异常处理是一项非常重要的任务。Java内置了许多不同的异常类型,以及许多不同的异常处理方式。在本文中,我们将深入剖析Java中的各种异常处理方式,向你展示如何优雅地处理程序可能出现的异常情况。 异常的产生原因 在Java中,异常是代码运行时可能遇到的问题或错误的一种表示。通常情况下,异常会导致程序终止或崩溃…

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