Map.prototype.forEach ( callbackfn [ , thisArg ] ) | ||
---|---|---|
ES2022 (13) | ES2021 (12) | ES2020 (11) |
Map.forEach( callbackfn [ , thisArg ] )
callbackfn 反復要素処理を行うコールバック関数 (詳細は下記参照)
thisArg コールバック関数内でthis で参照されるオブジェクト
TypeError 例外 callbackfnが呼び出し可能な関数オブジェクト以外
パラメータ (例) | 説明 |
---|---|
value | 要素の値 |
key | 要素のキー |
mapObj | 対象 Map オブジェクト |
var map = new Map();
map.set(0, null);
map.set(1, "ONE");
map.set("two", 2);
map.set("abc", "ABC");
function forEachFunc1(value, key, mapObj) {
console.log("[" + key + "]:" + value);
}
map.forEach(forEachFunc1);
// 出力:[0]:null
// 出力:[1]:ONE
// 出力:[two]:2
// 出力:[abc]:ABC
function forEachFunc2(value, key, mapObj) {
console.log("[" + key + "]:" + value);
if (typeof value === 'string') {
this.push(value);
}
}
var array = new Array();
map.forEach(forEachFunc2, array);
// 出力:[0]:null
// 出力:[1]:ONE
// 出力:[two]:2
// 出力:[abc]:ABC
console.log(array);
// 出力:["ONE", "ABC"]
map.forEach(null); // TypeError 例外
Map.prototype [ @@iterator ] ( ) | ||
---|---|---|
ES2022 (13) | ES2021 (12) | ES2020 (11) |
Map.[@@iterator]( )
キーと値から成るイテレータオブジェクト (for-of または next() で繰り返し)
for (const item of Map) {
}
var map = new Map();
map.set(0, null);
map.set(1, "ONE");
map.set("two", 2);
map.set("abc", "ABC");
console.log("map.size =", map.size);
// 出力:map.size = 4
var mapIter1 = map[Symbol.iterator]();
for (var item of mapIter1) {
console.log(item);
}
// 出力:[0, null]
// 出力:[1, "ONE"]
// 出力:["two", 2]
// 出力:["abc", "ABC"]
var mapIter2 = map[Symbol.iterator]();
for (var i = 0; i < map.size; i++) {
console.log(mapIter2.next().value);
}
// 出力:[0, null]
// 出力:[1, "ONE"]
// 出力:["two", 2]
// 出力:["abc", "ABC"]
Map.prototype.entries ( ) | ||
---|---|---|
ES2022 (13) | ES2021 (12) | ES2020 (11) |
Map.entries( )
キーと値から成るイテレータオブジェクト
var map = new Map();
map.set(0, null);
map.set(1, "ONE");
map.set("two", 2);
map.set("abc", "ABC");
var mapIter1 = map.entries();
for (var item of mapIter1) {
console.log(item);
}
// 出力:[0, null]
// 出力:[1, "ONE"]
// 出力:["two", 2]
// 出力:["abc", "ABC"]
var mapIter2 = map.entries();
for (var i = 0; i < map.size; i++) {
console.log(mapIter2.next().value);
}
// 出力:[0, null]
// 出力:[1, "ONE"]
// 出力:["two", 2]
// 出力:["abc", "ABC"]
for (var [key, value] of map.entries()) {
console.log("[" + key + "]:" + value);
}
// 出力:[0]:null
// 出力:[1]:ONE
// 出力:[two]:2
// 出力:[abc]:ABC
Map.prototype.keys ( ) | ||
---|---|---|
ES2022 (13) | ES2021 (12) | ES2020 (11) |
Map.keys( )
キー要素のイテレータ
var map = new Map();
map.set(0, null);
map.set(1, "ONE");
map.set("two", 2);
map.set("abc", "ABC");
var keys1 = map.keys();
for (var key of keys1) {
console.log(key);
}
// 出力:0
// 出力:1
// 出力:two
// 出力:abc
var keys2 = map.keys();
for (var i = 0; i < map.size; i++) {
console.log(keys2.next().value);
}
// 出力:0
// 出力:1
// 出力:two
// 出力:abc
Map.prototype.values ( ) | ||
---|---|---|
ES2022 (13) | ES2021 (12) | ES2020 (11) |
Map.values( )
値要素のイテレータ
var map = new Map();
map.set(0, null);
map.set(1, "ONE");
map.set("two", 2);
map.set("abc", "ABC");
var values1 = map.values();
for (var value of values1) {
console.log(value);
}
// 出力:null
// 出力:ONE
// 出力:2
// 出力:ABC
var values2 = map.values()();
for (var i = 0; i < map.size; i++) {
console.log(values2.next().value);
}
// 出力:null
// 出力:ONE
// 出力:2
// 出力:ABC