TECH I.S.

JavaScript マップ

Map はキーと値のペアを保持し、キーは任意のデータ型にすることができます。

Map は、キーの元の挿入順序を記憶しています。

Map には、マップのサイズを表すプロパティがあります。


マップ方法

方法 説明
new Map()新しい Map オブジェクトを作成します
set()Map のキーの値を設定します
get()Map のキーの値を取得します
clear()Map からすべての要素を削除します
delete()キーで指定された Map 要素を削除します
has()キーが Map に存在する場合は true を返します
forEach()Map 内の各キーと値のペアに対してコールバックを呼び出します
entries()Map 内の [key, value] のペアを持つ iterator オブジェクトを返します
keys()Map 内のキーを持つ反復子オブジェクトを返します
values()Map の値の反復子オブジェクトを返します
プロパティ 説明
sizeMap 要素の数を返します

How to Create a Map

次の方法で JavaScript マップを作成できます。

  • 配列をnew Map()に渡す
  • マップを作成してMap.set()を使用する

new Map()

配列をnew Map()コンストラクターに渡すことで、マップを作成できます。

// 地図を作成する const fruits = new Map([   ["apples", 500],   ["bananas", 300],   ["oranges", 200] ]);

自分で試してみる»


Map.set()

set()メソッドを使用して要素を Map に追加できます。

// 地図を作成する const fruits = new Map(); // マップ値の設定 fruits.set("apples", 500); fruits.set("bananas", 300); fruits.set("oranges", 200);

自分で試してみる»

set()メソッドを使用して、既存の Map 値を変更することもできます。

fruits.set("apples", 500);

自分で試してみる»


Map.get()

get()メソッドは、Map 内のキーの値を取得します。

fruits.get("apples");    // Returns 500

自分で試してみる»



Map.size

sizeプロパティは、Map 内の要素の数を返します。

Map.delete()

delete()メソッドは Map 要素を削除します。

fruits.delete("apples");

自分で試してみる»


Map.clear()

clear()メソッドは、Map からすべての要素を削除します。

fruits.clear();

自分で試してみる»


Map.has()

Map にキーが存在する場合、 has()メソッドは true を返します。

fruits.has("apples");

自分で試してみる»

これを試して:

fruits.delete("apples"); fruits.has("apples");

自分で試してみる»


Maps are Objects

typeof はオブジェクトを返します:

// Returns object: typeof fruits;

自分で試してみる»

instanceofMap は true を返します

// trueを返します fruits instanceof Map;

自分で試してみる»


JavaScript オブジェクトとマップ

JavaScript オブジェクトとマップの違い:
Object Map
直接反復可能ではない 直接反復可能
サイズ プロパティがありません サイズ プロパティを持つ
キーは文字列 (またはシンボル) である必要があります キーには任意のデータ型を使用できます
キーの順序が正しくありません キーは挿入順に並べられます
デフォルトのキーがある デフォルトのキーがない

Map.forEach()

forEach()メソッドは、Map 内のキーと値のペアごとにコールバックを呼び出します。

// すべてのエントリをリストする let text = ""; fruits.forEach (function(value, key) {   text += key + ' = ' + value; })

自分で試してみる»


Map.entries()

entries()メソッドは、Map 内の [key,values] を含むイテレータ オブジェクトを返します。

// すべてのエントリをリストする let text = ""; for (const x of fruits.entries()) {   text += x; }

自分で試してみる»


Map.keys()

keys()メソッドは、Map 内のキーを含む反復子オブジェクトを返します。

// すべてのキーをリストする let text = ""; for (const x of fruits.keys()) {   text += x; }

自分で試してみる»


Map.values()

values()メソッドは、Map 内の値を含む反復子オブジェクトを返します。

// すべての値をリストする let text = ""; for (const x of fruits.values()) {   text += x; }

自分で試してみる»

values()メソッドを使用して、Map 内の値を合計できます。

// すべての値を合計する let total = 0; for (const x of fruits.values()) {   total += x; }

自分で試してみる»


Objects as Keys

オブジェクトをキーとして使用できることは、Map の重要な機能です。


// オブジェクトの作成 const apples = {name: 'Apples'}; const bananas = {name: 'Bananas'}; const oranges = {name: 'Oranges'}; // 地図を作成する const fruits = new Map(); // 新しい要素をマップに追加する fruits.set(apples, 500); fruits.set(bananas, 300); fruits.set(oranges, 200);

自分で試してみる»

注意: キーは文字列 ("apples") ではなく、オブジェクト (apples) です。

fruits.get("apples");  // Returns undefined

自分で試してみる»


ブラウザのサポート

JavaScript マップは、Internet Explorer を除くすべてのブラウザーでサポートされています。


Chrome Edge Firefox Safari Opera




プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細