new Map【コンストラクタ】

メモ

概要

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

関連

外部リンク

構文

new Map( [ iterable ] )

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

TypeError 
new なし (関数として呼び出し)
iterable (イテレータオブジェクト)が不正

const 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);
// 出力:map1.size = 4
const mapIter1 = map1[Symbol.iterator]();
for (let item of mapIter1) {
  console.log(item);
}
// 出力:
// [0, null]
// [1, 'ONE']
// ['two', 2]
// ['abc', 'ABC']

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

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

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

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