Skip to content

💡 Map - 专门用于处理多个键值对的方案

在 ES6 引入 Map 之前,JavaScript 只能使用普通对象来存储键值对数据。但 Map 的出现带来了更强大和灵活的数据存储方案。

✨ 核心特性

独特优势

  • 🔑 键值可以是任意数据类型
  • 🎯 保证键的唯一性

对比传统对象的优势

  1. 更灵活的键类型支持(不限于字符串)
  2. 内置 size 属性,方便获取元素数量
  3. 避免原型链属性冲突问题

📝 创建 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 集合不支持数组的下标访问方式,这是数组特有的特性。