当前位置: 首页 > news >正文

js中map属性

JavaScript中的Map对象保存键值对,并且能够记住键的原始插入顺序

以下是关于如何在JavaScript中使用Map对象的博客文章概要:

一、创建和初始化Map对象

使用new Map()构造函数可以创建一个新的Map对象。你还可以在构造函数中传入一个可迭代对象(如键值对数组)来初始化Map对象。

 
const map1 = new Map(); // 创建一个空的Map对象const map2 = new Map([['key1', 'value1'],['key2', 'value2'],['key3', 'value3']
]); // 使用键值对数组初始化Map对象

二、添加和获取键值对

使用set()方法向Map对象中添加键值对,使用get()方法根据键获取对应的值。

 
map1.set('key1', 'value1');
map1.set('key2', 'value2');console.log(map1.get('key1')); // 输出:'value1'
console.log(map1.get('key2')); // 输出:'value2'

三、检查键是否存在

使用has()方法检查Map对象中是否存在指定的键。

 
console.log(map1.has('key1')); // 输出:true
console.log(map1.has('key3')); // 输出:false

四、删除键值对

使用delete()方法从Map对象中删除指定的键及其对应的值。

 
map1.delete('key1');
console.log(map1.has('key1')); // 输出:false

五、遍历Map对象

Map对象支持使用forEach()方法或for...of循环进行遍历。

 
// 使用forEach()方法遍历
map1.forEach((value, key) => {console.log(`${key}: ${value}`);
});// 使用for...of循环遍历
for (const [key, value] of map1) {console.log(`${key}: ${value}`);
}

六、Map对象与其他数据结构的比较

Map对象与ObjectWeakMap等其他数据结构在存储键值对时有一些不同之处。例如,Map对象能够记住键的插入顺序,而Object的属性顺序在不同的JavaScript引擎中可能会有差异。另外,WeakMap只接受对象作为键,这使得它在某些特定场景下比Map对象更加适用。

七、总结

Map对象在JavaScript中提供了一种灵活且高效的键值对存储方式。它具有许多实用的方法,如set()get()has()delete()等,使得操作和管理键值对变得更加简单。此外,Map对象还能够记住键的插入顺序,这在某些应用场景下是非常有用的。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue2 前端实现pdf在线预览(无插件版)
  • “八股文”在程序员面试中的作用及其对实际工作的影响
  • Java整理14
  • C++ 沙漏图案(Hour-glass Pattern)
  • JavaScript_语法_运算符_一元运算符
  • Python面试题:结合Python技术,如何使用Alembic进行数据库迁移管理
  • Spring框架中依赖注入实现手段的选择(基于XML 或 基于注解)
  • 新装centos7虚拟机如何配置网络,NAT配置固定IP
  • Android Studio运行报错:module java.base dose not “opens java.io“ to unnamed module
  • 特斯拉财报看点:FSD拳打华为,Robotaxi 脚踢百度
  • Java类加载器实现机制详细笔记
  • Stable Diffusion WebUI本地环境搭建
  • kafka详解及应用场景介绍
  • 当你在浏览器扣下域名时。。。
  • (自适应手机端)行业协会机构网站模板
  • ECMAScript6(0):ES6简明参考手册
  • ES6简单总结(搭配简单的讲解和小案例)
  • FastReport在线报表设计器工作原理
  • go语言学习初探(一)
  • JavaWeb(学习笔记二)
  • js 实现textarea输入字数提示
  • JWT究竟是什么呢?
  • sublime配置文件
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 第十八天-企业应用架构模式-基本模式
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 1.Ext JS 建立web开发工程
  • Spring Batch JSON 支持
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​Linux·i2c驱动架构​
  • ​如何使用QGIS制作三维建筑
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # linux 中使用 visudo 命令,怎么保存退出?
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • (1)(1.13) SiK无线电高级配置(五)
  • (175)FPGA门控时钟技术
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (C#)获取字符编码的类
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (Matlab)使用竞争神经网络实现数据聚类
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (八)Spring源码解析:Spring MVC
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (十六)串口UART
  • (学习日记)2024.01.19
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)大型网站的系统架构
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .apk 成为历史!