サーチ…
構文
- 新しいマップ([iterable])
- map.set(key、value)
- map.get(key)
- map.size
- map.clear()
- map.delete(キー)
- map.entries()
- map.keys()
- map.values()
- map.forEach(コールバック[、thisArg])
パラメーター
パラメータ | 詳細 |
---|---|
iterable | [key, value] ペアを含む反復可能オブジェクト(配列など)。 |
key | 要素のキー。 |
value | キーに割り当てられた値。 |
callback | value、key、mapの3つのパラメータで呼び出されるコールバック関数。 |
thisArg | callback 実行するときにthis として使用される値。 |
備考
地図でNaN
と同じであると考えられているNaN
にもかかわらず、 NaN !== NaN
。例えば:
const map = new Map([[NaN, true]]);
console.log(map.get(NaN)); // true
マップの作成
マップは、キーと値の基本的なマッピングです。マップは、文字列や記号だけでなく、キーが何か(プリミティブ値やオブジェクト)でもかまいません。マップ上の反復は、アイテムがマップに挿入された順番で常に行われますが、オブジェクト内のキーを反復処理するときは順序は未定義です。
マップを作成するには、Mapコンストラクタを使用します。
const map = new Map();
オプションのパラメータを持ちます。これは、2つの要素の配列を含む反復可能オブジェクト(配列など)です。最初はキー、秒は値です。例えば:
const map = new Map([[new Date(), {foo: "bar"}], [document.body, "body"]]);
// ^key ^value ^key ^value
マップのクリア
マップからすべての要素を削除するには、 .clear()
メソッドを使用します。
map.clear();
例:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.size); // 2
map.clear();
console.log(map.size); // 0
console.log(map.get(1)); // undefined
マップから要素を削除する
マップから要素を削除するには、 .delete()
メソッドを使用します。
map.delete(key);
例:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.get(3)); // 4
map.delete(3);
console.log(map.get(3)); // undefined
このメソッドは、要素が存在し、削除されている場合はtrue
返し、それ以外の場合はfalse
返しtrue
。
const map = new Map([[1, 2], [3, 4]]);
console.log(map.delete(1)); // true
console.log(map.delete(7)); // false
マップにキーが存在するかどうかを確認する
マップにキーが存在するかどうかを確認するには、 .has()
メソッドを使用します。
map.has(key);
例:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.has(1)); // true
console.log(map.has(2)); // false
イテレートマップ
Mapにはイテレータを返す3つのメソッドがあります: .keys()
.values()
.entries()
。 .entries()
はデフォルトのMapイテレータであり、 [key, value]
ペアを含みます。
const map = new Map([[1, 2], [3, 4]]);
for (const [key, value] of map) {
console.log(`key: ${key}, value: ${value}`);
// logs:
// key: 1, value: 2
// key: 3, value: 4
}
for (const key of map.keys()) {
console.log(key); // logs 1 and 3
}
for (const value of map.values()) {
console.log(value); // logs 2 and 4
}
Mapには.forEach()
メソッドもあります。最初のパラメータはマップの各要素に対して呼び出されるコールバック関数で、2番目のパラメータはコールバック関数の実行時にthis
値として使用される値です。
コールバック関数には、value、key、mapオブジェクトという3つの引数があります。
const map = new Map([[1, 2], [3, 4]]);
map.forEach((value, key, theMap) => console.log(`key: ${key}, value: ${value}`));
// logs:
// key: 1, value: 2
// key: 3, value: 4
要素の取得と設定
使用.get(key)
キーとすることで値を取得するために.set(key, value)
のキーに値を代入します。
指定されたキーを持つ要素がマップに存在しない場合、 .get()
はundefined
返します。
.set()
メソッドはmapオブジェクトを返すので、 .set()
呼び出しをチェーンすることができます。
const map = new Map();
console.log(map.get(1)); // undefined
map.set(1, 2).set(3, 4);
console.log(map.get(1)); // 2
マップの要素数の取得
マップの要素数を取得するには、 .size
プロパティを使用します。
const map = new Map([[1, 2], [3, 4]]);
console.log(map.size); // 2