JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのMapオブジェクトとは?特徴と基本的な使い方を解説

JavaScriptのMapオブジェクトとは

MDNドキュメントによると、Mapオブジェクトは「キーと値のペア」を保持し、キーが挿入された元の順序を記憶するデータ構造です。任意の値(オブジェクトとプリミティブ値の両方)を、キーまたは値として自由に使用できます。

ここで特に重要なポイントは、オブジェクトそのものもMapのキーとして使えるという点です。これは通常のJavaScriptオブジェクトでは実現できない動作です。一般的なJSオブジェクトでは、キーとして使用できるのはプリミティブ値(文字列や数値など)のみに限られます。

さらに、Mapが特定の場面で役立つもう一つの大きな特徴は、反復可能(iterable)であることです。しかも、要素は挿入された順序どおりに取り出されます。そのため、「キーの順序を維持したい」と「各キーに対応する値を持たせたい」という両方の要件がある場合には、Mapを使うのが最適な選択となります。

Mapの主な特徴まとめ

  • あらゆる型の値(オブジェクト・関数・プリミティブ)をキーとして使用可能
  • キーの挿入順序が保持されるため、順序どおりの反復処理が可能
  • sizeプロパティで要素数を簡単に取得できる
  • set()で追加、get()で取得といった直感的なAPIを提供

Mapの使用例

実際に、文字列・オブジェクト・関数という異なる種類のキーを使ってMapに値を設定する例を見てみましょう。

const myMap = new Map();
const keyString = 'a string';
const keyObj = {};
const keyFunc = function() {};

// さまざまな種類のキーで値を設定
myMap.set(keyString, 'String Val');
myMap.set(keyObj, 'Object val');
myMap.set(keyFunc, 'Function val');

console.log(myMap.size);
console.log(myMap.get(keyString));

実行結果

このコードを実行すると、コンソールには次のように出力されます。

3
String Val

出力の意味を簡単に解説します。myMap.sizeは3を返します。これは、set()メソッドによって3つのエントリ(キーと値のペア)が追加されたためです。また、myMap.get(keyString)は、文字列キー'a string'に関連付けられた値'String Val'を返しています。

このように、Mapを使えば柔軟なキーの指定と順序の保証を同時に得られるため、キャッシュ管理やデータの関連付けなど、さまざまな場面で活用できます。

  1. JavaScriptのMap(マップ)オブジェクトとは?基本的な使い方をサンプルコード付きで解説

    MapオブジェクトとはMap(マップ)オブジェクトは、ES6(ECMAScript 2015)で導入された組み込みオブジェクトの一つで、「キー」と「値」のペアで構成される要素を管理するコレクションです。通常のオブジェクトとよく似ていますが、Mapの大きな特徴は、キーにオブジェクトやプリミティブ値など、あらゆる型の値を使用できる点にあります。さらに、要素は挿入した順序で保持されるため、for...ofループなどを利用して、追加した順番どおりに反復処理を行うことも可能です。Mapオブジェクトの主なメソッドとプロパティメソッド / プロパティ説明new Map(iterable)配列などのイテラブル

  2. JavaScriptのObject.keys().map()とArray.map()の違いを徹底解説

    JavaScriptにおいて、Array.map()は配列の各要素に関数を適用し、その結果を新しい配列として返すメソッドです。一方、オブジェクトには直接map()メソッドが用意されていないため、Object.keys().map()という形で、まずObject.keys()を使ってオブジェクトのキーを配列として取得し、そこにmap()を適用するのが一般的なテクニックとなります。 この記事では、両者の使い方の違いを、実際に動作するサンプルコードと実行結果をもとにわかりやすく解説します。 サンプルコード 以下は、Object.keys().map()とArray.map()の動作を比較できるJa