new Map()【コンストラクタ】

メモ

  • Mapオブジェクトのコンストラクタ
  • new なし (関数として呼び出し) は、TypeError例外

構文

  • new Map ( [ iterable ] )

  • iterable: キーと値から成るイテレータオブジェクト 及び それに準ずるもの (キーと値の配列から成る2次元配列等)

Mapオブジェクト

  • TypeError 例外
    • new なし (関数として呼び出し)
    • 入力のイテレータオブジェクトが不正

var map1 = new Map();
map1.set(0, null);
map1.set(1, "ONE");
map1.set("two", 2);
map1.set("abc", "ABC");

console.log("map1.size =", map1.size);
var mapIter1 = map1[Symbol.iterator]();
for (var item of mapIter1) {
  console.log(item);
}
// 出力:map1.size = 4
// 出力:[0, null]
// 出力:[1, "ONE"]
// 出力:["two", 2]
// 出力:["abc", "ABC"]

var array = [ ["a", 1], ["b", 3], ["c", 5] ];
var map2 = new Map(array);
console.log("map2.size =", map2.size);
var mapIter2 = map2[Symbol.iterator]();
for (var item of mapIter2) {
  console.log(item);
}
// 出力:map2.size = 3
// 出力:["a", 1]
// 出力:["b", 3]
// 出力:["c", 5]

var map3 = new Map();
map3.set("a", 2);
map3.set("b", 4);
map3.set("c", 6);
var map4 = new Map(map3);
console.log("map4.size =", map4.size);
var mapIter4 = map4[Symbol.iterator]();
for (var item of mapIter4) {
  console.log(item);
}
// 出力:map4.size = 3
// 出力:["a", 2]
// 出力:["b", 4]
// 出力:["c", 6]

var map5 = new Map(map3.entries());
console.log("map5.size =", map5.size);
var mapIter5 = map5[Symbol.iterator]();
for (var item of mapIter5) {
  console.log(item);
}
// 出力:map5.size = 3
// 出力:["a", 2]
// 出力:["b", 4]
// 出力:["c", 6]

var mapNg1 = Map();         // new なし TypeError例外
var mapNg2 = new Map(123);  // TypeError例外