{category}

JavaScript - MapとSet

Map

マップ(組み込みオブジェクト

意味 キーと値のコレクション


Mapとは?

Mapオブジェクトはキーと値のペアを保持するコレクションで、キーの重複を許さず、任意の値(オブジェクトやプリミティブ値)をキーや値として保持できます。

Mapの具体的な使い方

Mapの基本操作

// 新しいMapを作成
const fruits = new Map();

// キーと値のペアを追加
fruits.set('りんご', 100);
fruits.set('バナナ', 80);
fruits.set('オレンジ', 120);

// 値を取得
console.log('りんごの価格:', fruits.get('りんご'));

// キーの存在確認
console.log('メロンは存在するか:', fruits.has('メロン'));

// サイズを取得
console.log('フルーツの種類:', fruits.size);

// キーと値のペアを反復処理
fruits.forEach((value, key) => {
  console.log(`${key}: ${value}円`);
});

// キーを削除
fruits.delete('バナナ');
console.log('バナナを削除後のサイズ:', fruits.size);

👇出力結果

りんごの価格: 100
メロンは存在するか: false
フルーツの種類: 3
りんご: 100円
バナナ: 80円
オレンジ: 120円
バナナを削除後のサイズ: 2

この例では、Mapの基本的な操作(作成、追加、取得、存在確認、サイズ取得、反復処理、削除)を示しています。

オブジェクトをキーとして使用

const objKey1 = { id: 1, name: 'obj1' };
const objKey2 = { id: 2, name: 'obj2' };

const objMap = new Map();
objMap.set(objKey1, 'Value for obj1');
objMap.set(objKey2, 'Value for obj2');

console.log(objMap.get(objKey1));
console.log(objMap.get(objKey2));

// 同じプロパティを持つ新しいオブジェクト
const objKey3 = { id: 1, name: 'obj1' };
console.log(objMap.get(objKey3)); // undefined

👇出力結果

Value for obj1
Value for obj2
undefined

この例では、Mapがオブジェクトをキーとして使用できることを示しています。同じプロパティを持つ別のオブジェクトは異なるキーとして扱われます。

Mapに関するよくある質問

Q. MapとObjectの違いは?
A. Mapはキーに任意の型を使用でき、順序を保持し、サイズを直接取得できます。Objectはキーが文字列または Symbol に限定され、これらの機能がありません。
Q. Mapのキーにオブジェクトを使える?
A. はい、Mapのキーにはオブジェクトを含む任意の値を使用できます。これはObjectにはない特徴です。
Q. Mapの要素を反復処理する方法は?
A. for...of ループ、forEach()メソッド、あるいはentries()、keys()、values()メソッドを使用して反復処理できます。

Mapが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、JavaScriptのMapやdate.getDay()、Object.entries()、Object.assign()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


JavaScriptを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!JavaScriptはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

date.getDay()

曜日を取得(0-6)

種類: Date

Object.entries()

オブジェクトの内容表示

種類: Object

Object.assign()

オブジェクト結合・コピー

種類: Object

!=

非等価

種類: 比較演算子

SyntaxError

文法エラー

種類: エラーオブジェクト