JavaScript实现数组去重的7种方法

yizhihongxing

JavaScript实现数组去重的7种方法

在JavaScript中,实现数组去重是一个常见的需求。下面介绍7种实现数组去重的方式。

1.使用 Set

使用ES6中的Set对象可以方便地实现数组去重,使用Set之后,将数组转换为Set之后,再将Set转换为数组即可。

const arr = [1, 2, 1, 2, 3]
const newArr = Array.from(new Set(arr))
console.log(newArr) // [1, 2, 3]

2.使用for循环和indexOf

通过遍历原数组,将不重复的元素添加到新数组中实现去重。

const arr = [1, 2, 1, 2, 3]
const 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]

3.使用for循环和includes

使用ES6中的includes方法可以判断元素是否在数组中,配合for循环实现数组去重。

const arr = [1, 2, 1, 2, 3]
const newArr = []
for(let i=0; i<arr.length; i++) {
   if(!newArr.includes(arr[i])) {
      newArr.push(arr[i])
   }
}
console.log(newArr) // [1, 2, 3]

4.使用reduce

使用reduce方法进行去重处理。

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

5.使用filter

使用filter方法配合indexOf方法实现数组去重。

const arr = [1, 2, 1, 2, 3]
const newArr = arr.filter((item, index) => arr.indexOf(item) === index)
console.log(newArr) // [1, 2, 3]

6.使用ES6中的Map

通过使用ES6中的Map对象,可以实现数组去重。

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

7.使用对象键值对

使用对象键值对实现数组去重。

const arr = [1, 2, 1, 2, 3]
const obj = {}
const newArr = []
for(let i=0; i<arr.length; i++) {
   if(!obj[arr[i]]) {
      obj[arr[i]] = true
      newArr.push(arr[i])
   }
}
console.log(newArr) // [1, 2, 3]

示例说明

以第一个方法为例,数组[1, 2, 1, 2, 3]通过使用Set对象,先将数组转换为Set对象,再将Set对象转换为数组,从而实现数组去重,输出结果为 [1, 2, 3]。

const arr = [1, 2, 1, 2, 3]
const newArr = Array.from(new Set(arr))
console.log(newArr) // [1, 2, 3]

再以第三个方法为例,使用for循环和includes方法进行遍历和去重,输出结果同样为[1, 2, 3]。

const arr = [1, 2, 1, 2, 3]
const newArr = []
for(let i=0; i<arr.length; i++) {
   if(!newArr.includes(arr[i])) {
      newArr.push(arr[i])
   }
}
console.log(newArr) // [1, 2, 3]

以上为对“JavaScript实现数组去重的7种方法”的完整攻略。

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

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

相关文章

  • js中过滤特殊字符的正则表达式

    接下来我将详细讲解“js中过滤特殊字符的正则表达式”的攻略。 正则表达式 正则表达式是一种模式匹配的工具,它可以用来匹配并提取文本中的特定字符或字符串。在JavaScript中,可以使用正则表达式来过滤特殊字符。 过滤特殊字符 过滤特殊字符可以提高网站或应用程序的安全性和稳定性,防止恶意代码注入或造成页面渲染异常等问题。 在JavaScript中,可以使用正…

    JavaScript 2023年6月10日
    00
  • js创建表单元素并使用submit进行提交

    下面是创建表单元素并使用submit进行提交的完整攻略,由以下三个步骤组成: 步骤一:创建表单元素 创建表单元素需要使用JavaScript。我们可以使用DOM API来创建表单元素。首先,我们需要创建一个 元素。可以使用document.createElement()方法来创建。 const form = document.createElement(‘f…

    JavaScript 2023年6月10日
    00
  • 使用Entrust扩展包在laravel 中实现RBAC的功能

    使用Entrust扩展包可以在Laravel中很容易地实现RBAC功能。下面是实现该功能的完整攻略: 1. 安装Entrust扩展包 在Laravel项目中使用Composer安装Entrust扩展包。在命令行运行以下命令: composer require zgldh/entrust 2. 配置Entrust扩展包 接着,你需要在laravel项目中进行配…

    JavaScript 2023年6月10日
    00
  • JavaScript 闭包在封装函数时的简单分析

    JavaScript 中的闭包是一种强大而常用的技术,它可以帮助我们在封装函数时实现高度的抽象和封装性。在本文中,我将为您详细阐述何为 JavaScript 闭包,并且提供两个示例说明闭包在封装函数时的简单分析,希望这篇攻略可以帮助您更好地理解闭包的使用方法。 什么是 JavaScript 闭包? JavaScript闭包是指该函数可以访问其作用域之外的变量…

    JavaScript 2023年6月10日
    00
  • JavaScript简介_动力节点Java学院整理

    JavaScript简介:动力节点Java学院整理 什么是JavaScript JavaScript是一种基于对象和事件驱动的脚本语言,是目前世界上应用最广泛的编程语言之一。通常用于客户端的Web开发,可以通过HTML文档中内嵌的JavaScript脚本来实现对网页的交互和动态效果。 JavaScript的特点 JavaScript具有以下几个特点: 轻量级…

    JavaScript 2023年5月18日
    00
  • JavaScript中的ArrayBuffer详细介绍

    JavaScript中的ArrayBuffer是一种用于存储二进制数据的内存缓冲区。它提供了许多高效地操作二进制数据的方法,包括创建、读写、复制、转换等。 创建ArrayBuffer 在JavaScript中,我们可以通过以下方式来创建一个ArrayBuffer: let buffer = new ArrayBuffer(length); 其中length表…

    JavaScript 2023年5月27日
    00
  • JavaScript数组filter方法

    当在JavaScript中使用数组时,有时我们需要从数组中筛选出符合条件的数据。这时可以使用数组的filter()方法。本文将介绍如何使用filter()方法以及一些示例。 基本语法 filter()方法的基本语法如下: array.filter(function(currentValue[, index[, array]]) { // 定义规则 }); 其…

    JavaScript 2023年5月27日
    00
  • Mybatis常用分页插件实现快速分页处理技巧

    Mybatis常用分页插件实现快速分页处理技巧 背景 在使用Mybatis作为应用程序的ORM框架时,我们通常需要实现对数据库表的快速分页查询。而Mybatis常用的分页插件可以帮助我们快速实现这个功能。 准备工作 在使用分页插件之前,我们需要先将其引入到项目中,并在Mybatis的配置文件中进行配置。 引入分页插件 在Maven项目中,我们可以在pom.x…

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