目录

JavaScript 映射

Map 保存键值对,其中键可以是任何数据类型。

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

基本映射方法

方法 描述
new Map() 创建一个新映射
set() 设置 Map 中键的值
get() 获取 Map 中某个键的值
delete() 删除由键指定的 Map 元素
has() 如果 Map 中存在键则返回 true
forc 为 Map 中的每个键/值对调用一个函数
orEach() 返回具有 Map 中的 [key, value] 对的迭代器
属性 描述
size 返回 Map 中的元素数量

如何创建映射

您可以通过以下方式创建 JavaScript 映射:

  • 将数组传递给new Map()
  • 创建映射并使用Map.set()

新的 Map() 方法

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

示例

// Create a Map
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);
亲自试一试 »

set() 方法

您可以使用以下命令将元素添加到映射中set()方法:

示例

// Create a Map
const fruits = new Map();

// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
亲自试一试 »

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

示例

fruits.set("apples", 200);
亲自试一试 »

get() 方法

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

示例

fruits.get("apples");    // Returns 500
亲自试一试 »


尺寸属性

这个size属性返回 Map 中的元素数量:

示例

fruits.size;
亲自试一试 »

删除()方法

这个delete()方法删除 Map 元素:

示例

fruits.delete("apples");
亲自试一试 »

has() 方法

这个has()如果 Map 中存在键,方法返回 true:

示例

fruits.has("apples");
亲自试一试 »

尝试这个:

fruits.delete("apples");
fruits.has("apples");
亲自试一试 »

JavaScript 对象与映射

JavaScript 对象和映射之间的区别:

对象 映射
可迭代 不可直接迭代 直接可迭代
尺寸 没有尺寸属性 拥有大小属性
关键类型 键必须是字符串(或符号) 键可以是任何数据类型
关键订单 按键顺序不正确 键按插入顺序排列
默认值 有默认键 没有默认键

forEach() 方法

这个forEach()方法为 Map 中的每个键/值对调用一个函数:

示例

// List all entries
let text = "";
fruits.forEach (function(value, key) {
  text += key + ' = ' + value;
})
亲自试一试 »

Entry() 方法

这个entries()方法返回一个迭代器对象,其中包含 Map 中的 [key, value]:

示例

// List all entries
let text = "";
for (const x of fruits.entries()) {
  text += x;
}
亲自试一试 »

浏览器支持

除 Internet Explorer 外,所有浏览器都支持 JavaScript 映射:

Chrome Edge Firefox Safari Opera