Map 保存键值对,其中键可以是任何数据类型。
Map 会记住键的原始插入顺序。
映射有一个表示映射大小的属性。
方法 | 描述 |
---|---|
new Map() | 创建一个新的映射对象 |
set() | 设置 Map 中键的值 |
get() | 获取 Map 中某个键的值 |
clear() | 从 Map 中删除所有元素 |
delete() | 删除由键指定的 Map 元素 |
has() | 如果 Map 中存在键则返回 true |
forEach() | 为 Map 中的每个键/值对调用回调 |
entries() | 返回具有 Map 中的 [key, value] 对的迭代器对象 |
keys() | 返回带有 Map 中的键的迭代器对象 |
values() | 返回 Map 中值的迭代器对象 |
属性 | 描述 |
---|---|
size | 返回 Map 元素的数量 |
您可以通过以下方式创建 JavaScript 映射:
new Map()
Map.set()
您可以通过将数组传递给new Map()
构造函数:
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
亲自试一试 »
您可以使用以下命令将元素添加到映射中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 值:
这个get()
方法获取 Map 中键的值:
这个size
属性返回 Map 中的元素数量:
这个delete()
方法删除 Map 元素:
这个clear()
方法从 Map 中删除所有元素:
这个has()
如果 Map 中存在键,方法返回 true:
typeof
返回对象:
instanceof
映射返回 true:
对象 | 映射 |
---|---|
不可直接迭代 | 直接可迭代 |
没有尺寸属性 | 拥有大小属性 |
键必须是字符串(或符号) | 键可以是任何数据类型 |
按键顺序不正确 | 键按插入顺序排列 |
有默认键 | 没有默认键 |
这个forEach()
方法为 Map 中的每个键/值对调用回调:
// List all entries
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value;
})
亲自试一试 »
这个entries()
方法返回一个迭代器对象,其中包含 Map 中的 [key,values]:
这个keys()
方法返回一个迭代器对象,其中包含 Map 中的键:
这个values()
方法返回一个迭代器对象,其中包含 Map 中的值:
您可以使用values()
对 Map 中的值求和的方法:
能够使用对象作为键是一个重要的 Map 功能。
// Create Objects
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};
// Create a Map
const fruits = new Map();
// Add new Elements to the Map
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);
亲自试一试 »
请记住:键是一个对象(苹果),而不是字符串("apples"):
除 Internet Explorer 外,所有浏览器都支持 JavaScript 映射:
Chrome | Edge | Firefox | Safari | Opera |
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!