Map【マップ】オブジェクト
メモ コンストラクタ プロパティ メソッド 例
メモ
概要
- マップ (キー・値) オブジェクト
- クラス定義による継承可能
参考:その他 配列・コレクション
関連
- 関連オブジェクト比較
Object【オブジェクト】
の連想配列Map【マップ】 Set
【一意コレクション】WeakMap
【弱参照マップ】WeakSet
【弱参照一意コレクション】コンストラクタ オブジェクトリテラル
new Object ( [ value ] )new Map
( [ iterable ] )new Set
( [ iterable ] )new WeakMap
( [ iterable ] )new WeakSet
( [ iterable ] )キー 文字列
Symbol任意 オブジェクト
Symbol値 任意 任意 任意 任意 オブジェクトのみ ガベージ コレクション 手動 手動 自動 要素数 Object.keys ( obj ).length size プロパティ size プロパティ 要素追加・更新 obj.key
obj [ 'key' ]
セッターset ( key, value ) add ( value ) set ( key, value ) add ( value ) 要素有無 hasOwnProperty(V) has ( key ) has ( value ) has ( key ) has ( value ) 要素値取得 obj.key
obj [ 'key' ]
ゲッターget ( key ) get ( key ) 要素削除 delete obj.key
delete obj [ 'key' ]delete ( key ) delete ( value ) delete ( key ) delete ( value ) 全要素削除 clear ( ) clear ( ) イテレータ
オブジェクト作成
(キー・値)Object.entries( O )
(配列取得)[@@iterator] ( )
entries ( )entries ( )
(キー = 値)イテレータ
オブジェクト作成
(キー)Object.keys( O )
(配列取得)keys ( ) keys ( )
(キー = 値)イテレータ
オブジェクト作成
(値)Object.values(O)
(配列取得)values ( ) [@@iterator] ( )
values ( )反復要素処理 for-in for-of
forEach
(callbackfn [, thisArg])
next()for-of
forEach
(callbackfn [, thisArg])
next()グループ分け groupBy ( items, callbackfn ) groupBy ( items, callbackfn )
外部リンク
- ECMA-262 (英語)
Map Objects ES2024 (15) ES2023 (14) ES2022 (13) get Map [ @@species ] ES2024 (15) ES2023 (14) ES2022 (13) Map.prototype [ @@toStringTag ] ES2024 (15) ES2023 (14) ES2022 (13) Map.prototype.constructor ES2024 (15) ES2023 (14) ES2022 (13) Map.prototype ES2024 (15) ES2023 (14) ES2022 (13) get Map.prototype.size ES2024 (15) ES2023 (14) ES2022 (13)
コンストラクタ
構文 | 説明 |
---|---|
new Map( [ iterable ] ) | コンストラクタ (new なし:TypeError例外) |
プロパティ 一覧
メソッド 一覧
メソッド | 説明 | |
---|---|---|
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. | groupBy ( items, callbackfn ) | グループ分け |
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"