Map

Map
寻觅~流光Map
Map 是 JavaScript 中的一种新型数据结构,它存储键值对(key-value pairs),与对象类似,但具有更多的特性和更高的灵活性。Map 是 ES6 引入的,它的键可以是任何数据类型,而对象的键只能是字符串或符号(虽然它们会被自动转换为字符串)。以下是 Map 的详细用法及其相关知识点:
1. 创建 Map
你可以使用 new Map() 来创建一个空的 Map 实例,或者传入一个二维数组来初始化它。
1 | // 创建一个空的 Map |
2. Map 常用方法
2.1 set(key, value)
set 方法用于将一个键值对添加到 Map 中。如果键已存在,则更新该键的值。
1 | const map = new Map(); |
2.2 get(key)
get 方法用于根据键获取对应的值。如果键不存在,返回 undefined。
1 | const map = new Map([ |
2.3 has(key)
has 方法用于判断 Map 中是否存在某个键,返回 true 或 false。
1 | console.log(map.has('age')); // true |
2.4 delete(key)
delete 方法用于删除 Map 中指定的键值对。如果键存在,则返回 true,如果不存在则返回 false。
1 | map.delete('age'); |
2.5 clear()
clear 方法用于清空 Map 中的所有键值对。
1 | map.clear(); |
2.6 size
size 属性用于返回 Map 中键值对的数量。
1 | const map = new Map([ |
2.7 keys()
keys 方法返回一个包含所有键的 Iterator 对象。可以用 for...of 循环遍历它。
1 | for (const key of map.keys()) { |
2.8 values()
values 方法返回一个包含所有值的 Iterator 对象。
1 | for (const value of map.values()) { |
2.9 entries()
entries 方法返回一个包含所有键值对的 Iterator 对象,每一项是一个 [key, value] 数组。
1 | for (const [key, value] of map.entries()) { |
3. 遍历 Map
你可以使用 for...of 循环结合 keys(), values() 或 entries() 方法来遍历 Map:
1 | const map = new Map([ |
4. Map 的特性
4.1 键的顺序
Map 保持插入键值对的顺序。遍历 Map 时,键值对会按照插入的顺序返回。
1 | const map = new Map(); |
4.2 键可以是任何类型
与对象不同,Map 的键可以是任意类型的值,不仅仅是字符串或符号。
1 | const map = new Map(); |
4.3 Map 的性能
与对象相比,Map 在插入和查找键值对时通常具有更好的性能,尤其是当键是动态变化的或数量较大的时候。
5. Map 与 Object 的对比
| 特性 | Map | Object |
|---|---|---|
| 键的类型 | 可以是任何类型(对象、函数、基本数据类型) | 只能是字符串或符号(虽然会自动转换为字符串) |
| 插入顺序 | 保持插入顺序 | 不保证插入顺序(但大多数现代浏览器会按顺序) |
| 存取性能 | 通常较好,尤其是大量数据时 | 在键是字符串时较好 |
| 是否可迭代 | 是,支持直接迭代键、值或键值对 | 否,需要 for...in 或 Object.keys() |
6. 应用场景
- 键是任意类型的情况:当你需要使用对象以外的类型作为键时,
Map是更好的选择。 - 频繁更新和查询操作:
Map提供了更高效的插入、查找和删除操作,尤其是对于大量数据的场景。 - 需要保证插入顺序:如果你需要保证插入顺序,
Map可以更方便地满足需求。
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果









