サーチ…


構文

  • 新しいマップ([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


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow