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对象还能够记住键的插入顺序,这在某些应用场景下是非常有用的。

相关推荐
人工智能训练2 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪2 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
兩尛2 小时前
c++知识点2
开发语言·c++
fengfuyao9853 小时前
海浪PM谱及波形的Matlab仿真实现
开发语言·matlab
xiaoye-duck3 小时前
C++ string 底层原理深度解析 + 模拟实现(下)——面试 / 开发都适用
开发语言·c++·stl
xiaoqi9223 小时前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
jin1233224 小时前
React Native鸿蒙跨平台剧本杀组队消息与快捷入口组件,包含消息列表展示、快捷入口管理、快捷操作触发和消息详情预览四大核心功能
javascript·react native·react.js·ecmascript·harmonyos
Hx_Ma164 小时前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet
期待のcode4 小时前
原子操作类LongAdder
java·开发语言
烬头88215 小时前
React Native鸿蒙跨平台实现二维码联系人APP(QRCodeContactApp)
javascript·react native·react.js·ecmascript·harmonyos