forEach【反復要素処理】メソッド
[@@iterator]【イテレータオブジェクト作成】メソッド
entries【イテレータオブジェクト作成】メソッド
keys【キー要素イテレータ作成】メソッド
values【値要素イテレータ作成】メソッド
Map.prototype.forEach【反復要素処理】メソッド
メモ
構文
forEach( callbackfn [ , thisArg ] )
- callbackfn:反復要素処理を行うコールバック関数
パラメータ (例) 説明 value 要素の値 key 要素のキー mapObj 対象 Map オブジェクト - thisArg:コールバック関数内でthis で参照されるオブジェクト
- なし
- TypeError 例外:callbackfn が呼び出し可能な関数オブジェクト以外
例
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]【イテレータオブジェクト作成】メソッド
メモ
- キーと値から成るイテレータオブジェクト作成
- 関連:
構文
[@@iterator]()
実装:[Symbol.iterator]()
- なし
- キーと値から成るイテレータオブジェクト
- for-of または next() で繰り返し
例
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【イテレータオブジェクト作成】メソッド
メモ
- キーと値から成るイテレータオブジェクト作成
- for-of または next() で繰り返し
- 関連:
構文
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【キー要素イテレータ作成】メソッド
メモ
- キー要素イテレータ作成
- for-of または next() で繰り返し
- 関連:
構文
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【値要素イテレータ作成】メソッド
メモ
- 値要素イテレータ作成
- for-of または next() で繰り返し
- 関連:
構文
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
関連
- ECMAScript 2015 (6) (英語)
- ECMAScript 2016 (7) (英語)