Map
对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
返回键对应的值,如果不存在,则返回undefined。
设置Map对象中键的值。返回该Map对象。
let map = new Map();
map.set('title', 'ECMA 2019');
map.set('year', 2019);
console.log(map.get('title')); // ECMA 2019
console.log(map.get('year')); // 2019
let map = new Map();
let key1 = {},
key2 = {};
map.set(key1, 4).set(key2, 34);
console.log(map); // Map { {} => 4, {} => 34 }
console.log(map.get(key1)); // 4
可以向 Map
构造函数传一个数组来初始化。数组的子元素是包含键和值两个元素的数组:
let map = new Map([['name', 'wozien'], ['age', 25]]);
console.log(map); // Map { 'name' => 'wozien', 'age' => 25 }
返回Map对象的键/值对的数量。
移除Map对象的所有键/值对 。
如果 Map
对象中存在该元素,则移除它并返回 true
;否则如果该元素不存在则返回 false
返回一个布尔值,表示Map实例是否包含键对应的值。
let map = new Map();
map.set('name', 'wozien');
map.set('age', 25);
console.log(map.size); // 2
console.log(map.has('name')); // true
map.delete('name');
console.log(map.has('name')); // false
map.clear();
console.log(map.size); // 0
返回一个新的 Iterator
对象,它按插入顺序包含了Map对象中每个元素的 [key, value]
数组
。
Map.prototype.forEach(callbackFn[, thisArg])
按插入顺序,为 Map
对象里的每一键值对调用一次callbackFn函数。如果为forEach提供了thisArg,它将在每次回调中作为this值。
myMap.forEach(function(value, key) {
console.log(key + " = " + value);
})
// 将会显示两个logs。 一个是 "0 = zero" 另一个是 "1 = one"
返回一个新的 Iterator
对象, 它按插入顺序包含了Map对象中每个元素的键 。
返回一个新的Iterator
对象,它按插入顺序包含了Map对象中每个元素的值 。
返回一个新的Iterator
对象,它按插入顺序包含了Map对象中每个元素的 [key, value]
数组
。
Map
可以使用for..of
循环来实现迭代
var myMap = new Map();
myMap.set(0, "zero");
myMap.set(1, "one");
for (var [key, value] of myMap) {
console.log(key + " = " + value);
}
// 将会显示两个log。一个是"0 = zero"另一个是"1 = one"
for (var key of myMap.keys()) {
console.log(key);
}
// 将会显示两个log。 一个是 "0" 另一个是 "1"
for (var value of myMap.values()) {
console.log(value);
}
// 将会显示两个log。 一个是 "zero" 另一个是 "one"
for (var [key, value] of myMap.entries()) {
console.log(key + " = " + value);
}
// 将会显示两个log。 一个是 "0 = zero" 另一个是 "1 = one"