ES6中的Map与Set数据结构的简单应用

一、Map定义和基本用法

Map是一种键值对集合,其中键和值都可以是任何类型(对象、原始值等)。与普通对象不同,Map保持键值对的插入顺序,并且允许使用任何类型的键。

1、创建Map

const map = new Map()

2、添加键值对。语法:map.set(键名, 值)

map.set('name', 'John')
map.set(1, 'one')
map.set(true, ['boolean'])

3、获取值。语法:map.get(键名)

console.log(map.get('name')); // 输出: John
console.log(map.get(1));      // 输出: one
console.log(map.get(true));   // 输出: ['boolean']

4、检查键。

console.log(map.has('name')); // 输出: true

5、删除键值对

map.delete('name');
console.log(map.has('name')); // 输出: false

6、获取Map的大小

console.log(map.size); // 输出: 2

7、简单示例

const map = new Map()
data.failedList.forEach((item) => {if (map.has(item.failedReason)) {// 如果已存在该失败原因,取出数组并 push 当前 vinconst vinList = map.get(item.failedReason)vinList.push(item.vin)} else {// 如果不存在,初始化一个数组存储当前 vinmap.set(item.failedReason, [item.vin])}})
console.log('最终结果:', map)
//map.forEach((值, 键名) => {  
//})
map.forEach((vinLists, failedReasons) => {useMessage().error(`VIN码${vinLists.join(',')}:${failedReasons}`)
})

二、Set定义和基本用法

Set是一种值的集合,其中每个值都是唯一的,且值可以是任何类型。Set不允许重复的值。

1、创建Set

const set = new Set();

2、添加值

set.add(1);
set.add(5);
set.add(1); // 重复值不会被添加
console.log(set.size); // 输出: 2

3、检查值

console.log(set.has(1)); // 输出: true
console.log(set.has(2)); // 输出: false

4、删除值

set.delete(5);
console.log(set.has(5)); // 输出: false

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

25.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--用户服务接口

用户管理是任何系统的基础功能之一,本篇介绍了如何实现一个完整的用户管理模块,包括用户信息的增删改查、用户状态管理、分页查询、数据验证和权限控制。核心代码实现部分涵盖了控制器(UserController)、服务接口(IUse…

基于深度学习的无人机轨迹预测

完整代码见文末 随着无人机技术的不断发展,无人机在农业、物流、监控等领域的应用日益广泛。精准的轨迹预测不仅能够提高无人机飞行的效率和安全性,还能在应对复杂环境下的突发状况时做出迅速反应。因此,基于深度学习的无人机轨迹预测已成为当前研究和应用的热门方向。 无…

AUTOSAR实战教程--DoIP_02_诊断链路建立流程

第一步:DoIP实体车辆声明/诊断仪车辆识别请求 打开激活线以后,DoIP实体发的三帧车辆声明报文。其中包含了DoIP实体的诊断逻辑地址(可以类比DoCAN的物理请求/响应地址),对应车辆的VIN码(若已配置&#xff0…

跟我学c++中级篇——多线程中的文件处理

一、文件处理 作为IO处理的一种重要场景,文件处理是几乎所有编程都无法绕过的一个情况。稍微复杂的一些的程序都可能需要文件处理,不管这种文件处理对开发者来说是显式的还是隐式的。相对于其它语言,C并未提供多么好的文件处理API接口&#…

Flutter知识点汇总

Flutter架构解析 1. Flutter 是什么?它与其他移动开发框架有什么不同? Flutter 是 Google 开发的开源移动应用开发框架,可用于快速构建高性能、高保真的移动应用(iOS 和 Android),也支持 Web、桌面和嵌入式设备。。它与其他移动开发框架(如 React Native、Xamarin、原…

【会员专享数据】1980—2022年中国逐日月年潜在蒸散发栅格数据

气象数据是我们在各项研究中都经常使用的数据,尤其是高精度的气象数据应用价值非常高。 之前我们分享过研究者张凌, 胡英屹等发布在国家冰川冻土沙漠科学数据中心平台上的nc格式的1980—2022年中国高分辨率逐日、逐月、逐年气象数据!很多小伙伴拿到数据…

前端打包工具简单介绍

前端打包工具简单介绍 一、Webpack 架构与插件机制 1. Webpack 架构核心组成 Entry(入口) 指定应用的起点文件,比如 src/index.js。 Module(模块) Webpack 把项目当作模块图,模块可以是 JS、CSS、图片等…

工业控制核心引擎高性能MCU——MM32F5370

RAMSUN提供的MM32F5370搭载180MHz Arm China Star-MC1处理器,集成DSP、FPU与三角函数加速单元(CORDIC),轻松应对复杂算法需求。其技术亮点包括: 超高精度PWM:8通道208ps级高精度PWM输出,满足储能…

AI架构师修炼之道

1 AI时代的架构革命 与传统软件开发和软件架构师相比,AI架构师面临着三重范式转换: 1.1 技术维度,需处理异构算力调度与模型生命周期管理的复杂性; 1.2 系统维度,需平衡实时性与资源约束的矛盾; 1.3 价…

数学建模期末速成 主成分分析的基本步骤

设有 n n n个研究对象, m m m个指标变量 x 1 , x 2 , ⋯ , x m x_1,x_2,\cdots,x_m x1​,x2​,⋯,xm​,第 i i i个对象关于第 j j j个指标取值为 a i j a_{ij} aij​,构造数据矩阵 A ( a i j ) n m A\left(\begin{array}{c}a_{ij}\end{array}\right)_{…

博图 SCL 编程技巧:灵活实现上升沿与下降沿检测案例分享(上)

博图 SCL 编程技巧:灵活实现上升沿与下降沿检测案例分享 在 PLC 编程中,检测信号从 0 变为 1 (上升沿) 或从 1 变为 0 (下降沿) 是最基础也是最关键的操作之一。它常用于启动单次动作、计数、状态切换等场景。在西门子 TIA Portal 环境中,虽…

深度学习入门Day3--鱼书学习(2)

这俩天刚忙完答辩的事情,终于有时间学习了 一、3层神经网络实现 1.本节中的符号使用说明。 w 12 ( 1 ) w_{12}^{(1)} w12(1)​表示前一层的第2个神经元 x 2 x_{2} x2​到后一层的第一个神经元 a 1 a_{1} a1​的权重。权重右下角按照“后一层的索引号、前一层的索引…

服务器 | Centos 9 系统中,如何部署SpringBoot后端项目?

系列文章目录 虚拟机 | Ubuntu 安装流程以及界面太小问题解决 虚拟机 | Ubuntu图形化系统: open-vm-tools安装失败以及实现文件拖放 虚拟机 | Ubuntu操作系统:su和sudo理解及如何处理忘记root密码 文章目录 系列文章目录前言一、环境介绍二、 使用syst…

CNN核心机制深度解析:卷积池化原理 PyTorch实现经典网络

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文系统讲解CNN核心原理、经典网络架构和图像分类实战,涵盖卷积层、池化层、LeNet/AlexNet/VGG/ResNet设计思想,并提供CIFAR-…

6个月Python学习计划 Day 17 - 继承、多态与魔术方法

第三周 Day 4 🎯 今日目标 理解类的继承和方法重写掌握多态思想及其实际应用了解并使用常见的魔术方法(如 str、len 等) 🧬 类的继承(Inheritance) Python 支持单继承与多继承,常用语法如下&…

抖音怎么下载视频

抖音作为一款短视频社交平台,凭借其独特的短视频形式和丰富的内容,吸引了大量用户。有些用户在欣赏完抖音视频后,想要将其保存下来,以便日后观看。如何在抖音下载视频呢?本文将为您详细介绍抖音视频下载的技巧和方法。…

使用MinIO搭建自己的分布式文件存储

目录 引言: 一.什么是 MinIO ? 二.MinIO 的安装与部署: 三.Spring Cloud 集成 MinIO: 1.前提准备: (1)安装依赖: (2)配置MinIO连接: &…

uni-app 如何实现选择和上传非图像、视频文件?

在 uni-app 中实现选择和上传非图像、视频文件,可根据不同端(App、H5、小程序)的特点,采用以下方法: 一、通用思路(多端适配优先推荐) 借助 uni.chooseFile 选择文件,再用 uni.upl…

正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-12.1 Linux内核启动流程简介

前言: 本文是根据哔哩哔哩网站上“Arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用: …

UDP与TCP通信协议技术解析

文章目录 协议基础原理TCP:可靠的面向连接通信UDP:高效的无连接通信 性能特征分析TCP性能表现UDP性能表现 应用场景分析TCP适用场景UDP适用场景 技术实现考量错误处理策略网络资源利用 选择决策框架可靠性需求评估性能要求分析 混合方案设计协议组合策略…