Appearance
💡 Map - 专门用于处理多个键值对的方案
在 ES6 引入 Map 之前,JavaScript 只能使用普通对象来存储键值对数据。但 Map 的出现带来了更强大和灵活的数据存储方案。
✨ 核心特性
独特优势
- 🔑 键值可以是任意数据类型
- 🎯 保证键的唯一性
对比传统对象的优势
- 更灵活的键类型支持(不限于字符串)
- 内置 size 属性,方便获取元素数量
- 避免原型链属性冲突问题
📝 创建 Map
js
const map = new Map([
['name', '张三'],
['age', 18]
])
🔧 Map 常用 API
基础操作
API | 描述 | 示例 |
---|---|---|
set(key, value) | 📥 添加/更新键值对 | map.set('name', '张三') |
get(key) | 📤 获取指定键的值 | map.get('name') |
has(key) | 🔍 检查键是否存在 | map.has('name') |
delete(key) | ❌ 删除指定键值对 | map.delete('name') |
clear() | 🧹 清空所有键值对 | map.clear() |
属性与遍历
API | 描述 | 示例 |
---|---|---|
size | 📊 获取键值对数量 | map.size |
keys() | 🔑 获取所有键的迭代器 | [...map.keys()] |
values() | 💎 获取所有值的迭代器 | [...map.values()] |
entries() | 📋 获取所有键值对的迭代器 | [...map.entries()] |
高级特性
API | 描述 |
---|---|
forEach(callbackFn[, thisArg]) | 🔄 遍历所有键值对并执行回调 |
Symbol.iterator | 🔁 返回键值对迭代器 |
Symbol.toStringTag | 📝 返回对象类型标签 |
💡 Map 集合不支持数组的下标访问方式,这是数组特有的特性。