JavaScript 中的 Map使用指南
本文详细介绍了JavaScript中的Map数据结构,包括它的创建、常用方法、迭代方式以及与对象的区别,文章简要介绍了WeakMap的概念和使用场景,感兴趣的朋友一起看看吧
JavaScript 中的 Map 完全指南
引言
在 JavaScript 中,Map 是一种用于存储键值对的数据结构,具有灵活的键类型和丰富的方法。相较于传统的对象(Object),Map 提供了更高效的键值对操作方式,特别适合处理大量数据和需要频繁操作键值对的场景。本文将详细介绍 Map 的创建、常用方法、迭代方式,并探讨它与对象的区别和实际应用场景。
- 创建 Map
使用 new Map() 来创建一个空的 Map。
const map = new Map();
也可以在创建时初始化 Map,传入一个包含键值对的数组:
const map = new Map([
["name", "Alice"],
["age", 25]
]);
console.log(map); // 输出 Map(2) { 'name' => 'Alice', 'age' => 25 }
- Map 和对象的对比
在学习 Map 的基本操作之前,我们先来看一下 Map 与传统对象的区别。
特性 Map 对象
键的类型 任何类型(字符串、对象、函数等) 只能是字符串或符号
插入顺序 保持插入顺序 不保证插入顺序
键值对数量 size 属性 手动计算(Object.keys().length)
原型链污染 无 有,继承 Object.prototype
适用场景 频繁操作键值对,大量数据 小规模键值对或需要方法时
通过对比可以看出,Map 在键的类型、插入顺序的保持以及键值对操作的效率上,都有显著的优势。
- Map 的常用方法
3.1 set(key, value)
用于向 Map 添加一个键值对。如果键已经存在,set 会更新其值。
map.set("name", "Bob");
map.set("age", 30);
console.log(map); // 输出 Map(2) { 'name' => 'Bob', 'age' => 30 }
3.2 get(key)
获取指定键的值,如果键不存在,返回 undefined。
console.log(map.get("name")); // 输出 'Bob'
console.log(map.get("gender")); // 输出 undefined