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【イテレータオブジェクト作成】メソッド

メモ

構文

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【キー要素イテレータ作成】メソッド

メモ

構文

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【値要素イテレータ作成】メソッド

メモ

構文

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