首页 > 其他分享 >JS数组去重的4种办法

JS数组去重的4种办法

时间:2023-10-09 21:11:39浏览次数:48  
标签:const log uniqueArray 办法 value JS 数组 array

有多种方法可以对数组进行去重,下面介绍的是常见的四种办法:

  1. 使用 Set 数据结构:Set 是 ES6 引入的一种新的数据结构,它存储唯一的值,可以利用它的去重特性来对数组进行去重。

    const array = [1, 2, 2, 3, 3, 4, 5];
    const uniqueArray = [...new Set(array)];
    console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
    
  2. 使用 filter 方法:使用数组的 filter 方法结合 indexOf 可以遍历数组,对每个元素进行判断,只保留第一次出现的元素,从而达到去重的效果。

    const array = [1, 2, 2, 3, 3, 4, 5];
    const uniqueArray = array.filter((value, index, self) => {
      return self.indexOf(value) === index;
    });
    console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
    
  3. 使用 reduce 方法:使用数组的 reduce 方法遍历数组,将每个元素存储在一个新数组中,但只存储第一次出现的元素,从而实现去重。

    const array = [1, 2, 2, 3, 3, 4, 5];
    const uniqueArray = array.reduce((acc, curr) => {
      if (!acc.includes(curr)) {
        acc.push(curr);
      }
      return acc;
    }, []);
    console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
    
  4. 使用 Map 数据结构:使用 Map 数据结构存储数组中的元素,并使用元素的值作为键,对应的布尔值表示是否出现过。然后从 Map 中提取唯一的键集合,即得到去重后的数组。

    const array = [1, 2, 2, 3, 3, 4, 5];
    const uniqueArray = Array.from(new Map(array.map((value) => [value, true])).keys());
    console.log(uniqueArray); // Output: [1, 2, 3, 4, 5
    

标签:const,log,uniqueArray,办法,value,JS,数组,array
From: https://www.cnblogs.com/zhangzizi/p/17753146.html

相关文章

  • Grafana导入 json 文件的 dashboard 错误 Templating Failed to upgrade legacy queri
    前言编辑或者修改后的dashboard保存为json文件,在其他环境导入使用,报错FailedtoupgradelegacyqueriesDatasourcexxxxxxxwasnotfound,无法显示监控数据问题原因为:从其他grafana导出的dashboardjson文件中,数据源是写的固定的,如果当前要显示的监控数据的数据源名称......
  • 2023-01-31python-json
    +++title="Json读写(Python)"description=""date=2023-01-31T15:34:37+08:00featured=falsecomment=truetoc=truereward=truecategories=[""]tags=[""]series=[]images=[]+++使用python读写json......
  • js文件分片上传
    写在前面今天我们写一下关于js的分片上传,因为工作中很多时候上传文件是比较大的,为了不让卡死,我们可以使用分片上传的方式进行文件的传输,下面就简单的将思路梳理一下,然后贴上代码思路分析既然是分片上传,那么首先要知道不分片的时候是怎么上传的,我们一般是直接使用file文件然后将其......
  • nodejs之常用命令
    node控制台命令#新建文件夹mkdirname#清空控制台clearclr#跳转到指定目录cdname(目录名)#返回上一级cd..#移除指定文件rm文件名name#重命名renamesrc/index.htmlsrc/index.pug#清除缓存:cnpmcacheclean--forces#结束退出ctrl+c#......
  • js实现分片上传
    代码贴过来就能用<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport......
  • c# json操作
    使用JavaScriptSerializer需要在引用中添加System.Web.ExtensionsusingSystem.Web.Script.Serialization;classUpdateInfo{publicstringpackageUrl;publicstringremoteManifestUrl;publicstringremoteVersionUrl;publicstringversion;pu......
  • 排序数组
       排序数组 数组C++JavaPython前言本题你可以选择直接调用库函数来对序列进行排序,但意义不大。由于排序算法有很多,本文只介绍三种常见的基于比较的复杂度较低的排序。方法一:快速排序思路和算法快速排序的主要思想是通过划分将待排序的序列分成前后两......
  • js实现电子白板
    功能:使用画笔绘制笔迹(线条)、橡皮檫 <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>js实......
  • 原生js面试题
    一、深拷贝和浅拷贝-1js的数据类型基本类型和复杂类型-2堆和栈基本类型的值和复杂类型的地址存在栈中,复杂类型的地址指向堆中的内存-3深拷贝和浅拷贝的概念深拷贝的前提是复杂类型的复制-4举例说明 如果有个变量a和一个变量b如果a是一个对象......
  • Python生成随机整数数组的实用方法
    在编程中,生成随机整数数组是一项非常常见的任务。本文将介绍如何使用Python语言来生成随机整数数组,帮助读者掌握这一有用的编程技巧。通过实际的代码示例,我们将逐步指导读者完成生成随机整数数组的过程,并提供一些实际应用的建议。第一部分:了解随机数生成原理1.什么是随机数:-随机数......