JavaScript Map

Map 是一种键值对的集合,其中键可以是任何数据类型。

Map 会记住键的原始插入顺序。

如何创建 Map

可以通过以下方式创建 JavaScript Map:

  1. 将数组传递给 new Map()
  2. 创建一个 Map 并使用 Map.set()

new Map() 方法

可以通过将数组传递给 new Map() 构造函数来创建 Map:

实例

// 创建一个 Map
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

亲自试一试

set() 方法

可以使用 set() 方法向 Map 添加元素:

实例

// 创建一个 Map
const fruits = new Map();

// 设置 Map 值
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);

亲自试一试

set() 方法也可以用于更改现有的 Map 值:

实例

fruits.set("apples", 200);

亲自试一试

get() 方法

get() 方法获取 Map 中键的值:

实例

fruits.get("apples");    // 返回 500

亲自试一试

Map 是对象

typeof 返回 object:

实例

// 返回 object:
typeof fruits;

亲自试一试

instanceof Map 返回 true:

实例

// 返回 true:
fruits instanceof Map;

亲自试一试

JavaScript 对象与 Map 的区别

以下是 JavaScript 对象与 Map 的区别:

对象 Map
不可直接迭代 可直接迭代
没有 size 属性 有 size 属性
键必须是字符串或 Symbol 键可以是任何数据类型
键的顺序不明确 键按插入顺序排序
有默认键 没有默认键

完整的 Map 参考手册

如需完整参考,请访问我们的:JavaScript Map 参考手册

该手册包含所有 Map 属性和方法的描述和实例。

浏览器支持

Map 是 ES6 的特性(JavaScript 2015)。

自 2017 年 6 月起,所有现代浏览器均支持 ES6:

Chrome Edge Firefox Safari Opera
Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
2016 年 5 月 2017 年 4 月 2017 年 6 月 2016 年 9 月 2016 年 6 月

Internet Explorer 不支持 Map。