Map【マップ】オブジェクト

目次: メモ コンストラクタ プロパティ メソッド 関連

メモ

コンストラクタ

構文説明
new Map ( [ iterable ] ) コンストラクタ
(new なし:TypeError例外)

プロパティ

プロパティ説明
Map[@@species] コンストラクタ定義 (下記 を参照)
Map[Symbol.species]
Map.prototype[ @@toStringTag ] タグ (下記 を参照)
map[ Symbol.toStringTag ]:"Map"
Map.prototype.constructor コンストラクタ定義 (下記 を参照)
Map.prototypeプロトタイプ (下記 を参照)
Map.prototype. size 要素数 (下記 を参照)

メソッド

メソッド説明
Map.prototype[@@iterator] () イテレータオブジェクト作成
[Symbol.iterator] ()
Map.prototype.clear ()全要素削除
Map.prototype.delete ( key )要素削除
Map.prototype.entries () イテレータオブジェクト作成
Map.prototype.forEach ( callbackfn [, thisArg] ) 反復要素処理
Map.prototype.get ( key )要素値取得
Map.prototype.has ( key )要素有無
Map.prototype.keys () キー要素イテレータ作成
Map.prototype.set ( key, value ) 要素追加・更新
Map.prototype.values () 値要素イテレータ作成

console.log(Map.prototype.constructor);
// 出力:function Map() { [native code] }
console.log(Map.prototype);
// 出力:
// Map
//   clear:function clear()
//   constructor:function Map()
//   delete:function delete()
//   entries:function entries()
//   forEach:function forEach()
//   get:function get()
//   has:function has()
//   keys:function keys()
//   set:function set()
//   size:(...)
//   get size:function size()
//   values:function values()
//   Symbol(Symbol.iterator):function entries()
//   Symbol(Symbol.toStringTag):function "Map"
//   __proto__:Object
console.log(Map[Symbol.species]);      // [@@species]
// 出力:function Map() { [native code] }

var map = new Map();
console.log(map[Symbol.toStringTag]); // [@@toStringTag]
// 出力:Map
console.log(map.constructor);
// 出力:function Map() { [native code] }

var obj1 = new Object("obj1");
var obj2 = new Object("obj2");
var obj3 = new Object("obj3");
map.set(obj1, "OBJ1");
map.set(obj2, "OBJ2");
map.set(obj3, "OBJ3");
console.log(map.size);       // 出力:3
console.log(map.get(obj1));  // 出力:OBJ1
console.log(map.get(obj2));  // 出力:OBJ2
console.log(map.get(obj3));  // 出力:OBJ3
map.delete(obj2);
obj3 = new Object("obj3");
console.log(map.get(obj1));  // 出力:OBJ1
console.log(map.get(obj2));  // 出力:undefined (削除の為)
console.log(map.get(obj3));  // 出力:undefined (別のオブジェクトの為)
console.log(map.size);       // 出力:2 (参照されなくても保持)
for (var [key, value] of map) {
  console.log(key, value);
}
// 出力:String {"obj1" ...} "OBJ1"
// 出力:String {"obj3" ...} "OBJ3"