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"