JSチュートリアル

JSホーム JSの紹介 JSどこへ JS出力 JSステートメント JS構文 JSコメント JS変数 JS Let JSConst JSオペレーター JS算術 JS割り当て JSデータ型 JS関数 JSオブジェクト JSイベント JS文字列 JS文字列メソッド JS文字列検索 JS文字列テンプレート JS番号 JS番号メソッド JSアレイ JS配列メソッド JS配列ソート JSアレイの反復 JSアレイ定数 JSの日付 JSの日付形式 JS DateGetメソッド JS日付設定メソッド JS数学 JSランダム JSブール値 JSの比較 JS条件 JSスイッチ JSループFor JSループフォーイン JSループの JSループWhile JSブレイク JSIterables JSセット JSマップ JS Typeof JS型変換 JSビット単位 JS RegExp JSエラー JSスコープ JSホイスト JS厳密モード JSこのキーワード JSアロー関数 JSクラス JS JSON JSデバッグ JSスタイルガイド JSのベストプラクティス JSの間違い JSパフォーマンス JS予約語

JSバージョン

JSバージョン JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE /エッジ JSの歴史

JSオブジェクト

オブジェクト定義 オブジェクトのプロパティ オブジェクトメソッド オブジェクト表示 オブジェクトアクセサー オブジェクトコンストラクター オブジェクトのプロトタイプ オブジェクト反復可能 オブジェクトセット オブジェクトマップ オブジェクトリファレンス

JS関数

関数の定義 関数パラメーター 関数の呼び出し 関数呼び出し 機能適用 関数クロージャ

JSクラス

クラスイントロ クラス継承 クラス静的

JS非同期

JSコールバック JS非同期 JSの約束 JS Async / Await

JS HTML DOM

DOMイントロ DOMメソッド DOMドキュメント DOM要素 DOM HTML DOMフォーム DOM CSS DOMアニメーション DOMイベント DOMイベントリスナー DOMナビゲーション DOMノード DOMコレクション DOMノードリスト

JSブラウザBOM

JSウィンドウ JS画面 JSロケーション JSの歴史 JSナビゲーター JSポップアップアラート JSタイミング JSクッキー

JS Web API

WebAPIイントロ WebフォームAPI Web履歴API WebストレージAPI WebワーカーAPI Web Fetch API Web Geolocation API

JS AJAX

AJAXイントロ AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

JS JSON

JSONイントロ JSON構文 JSONとXML JSONデータ型 JSON解析 JSON文字列化 JSONオブジェクト JSON配列 JSONサーバー JSON PHP JSON HTML JSON JSONP

JSとjQuery

jQueryセレクター jQuery HTML jQuery CSS jQuery DOM

JSグラフィックス

JSグラフィックス JSキャンバス JSPlotly JS Chart.js JSグーグルチャート JS D3.js

JSの例

JSの例 JS HTML DOM JSHTML入力 JSHTMLオブジェクト JSHTMLイベント JSブラウザ JSエディター JS演習 JSクイズ JS証明書

JSリファレンス

JavaScriptオブジェクト HTMLDOMオブジェクト


JavaScriptマップ

マップは、キーが任意のデータ型であるキーと値のペアを保持します。

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

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

マップメソッド

方法説明
新しいMap()新しいMapオブジェクトを作成します
セットする()マップ内のキーの値を設定します
得る()マップ内のキーの値を取得します
クリア()マップからすべての要素を削除します
消去()キーで指定されたMap要素を削除します
もっている()キーがマップに存在する場合はtrueを返します
forEach()マップ内のキーと値のペアごとにコールバックを呼び出します
エントリ()マップ内の[key、value]ペアを持つイテレータオブジェクトを返します
keys()マップ内のキーを持つイテレータオブジェクトを返します
values()マップ内の値のイテレータオブジェクトを返します
財産説明
サイズマップ要素の数を返します

マップの作成方法

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

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

新しいMap()

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

// Create a Map
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

Map.set()

set()次の方法でマップに要素を追加できます。

// Create a Map
const fruits = new Map();

// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);

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

fruits.set("apples", 500);

Map.get()

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

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


Map.size

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

fruits.size;

Map.delete()

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

fruits.delete("apples");

Map.clear()

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

fruits.clear();

Map.has()

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

fruits.has("apples");

これを試して:

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

マップはオブジェクトです

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

// Returns object:
typeof fruits;

instanceof マップはtrueを返します:

// Returns true:
fruits instanceof Map;

JavaScriptオブジェクトとマップ

JavaScriptオブジェクトとマップの違い:

物体地図
反復可能 直接反復可能ではありません 直接反復可能
サイズ サイズプロパティはありません サイズプロパティを持っている
キータイプ キーは文字列(または記号)である必要があります キーは任意のデータ型にすることができます
キーオーダー キーの順序が正しくない キーは挿入順に並べられます
デフォルト デフォルトのキーを持っている デフォルトのキーはありません

Map.forEach()

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

// List all entries
let text = "";
fruits.forEach (function(value, key) {
  text += key + ' = ' + value;
})

Map.keys()

このkeys()メソッドは、マップ内のキーを持つイテレータオブジェクトを返します。

// List all keys
let veggies = "";
for (const x of fruits.keys()) {
  veggies += x;
}

Map.values()

このvaluesメソッドは、マップ内の値を含むイテレータオブジェクトを返します。

// Sum all values
let total = 0;
for (const x of fruits.values()) {
  total += x;
}

Map.entries()

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

// List all entries
let text = "";
for (const x of fruits.entries()) {
  text += x;
}

キーとしてのオブジェクト

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

// Create Objects
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};

// Create a Map
const fruits = new Map();

// Add new Elements to the Map
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);

注意:キーはオブジェクト(リンゴ)であり、文字列(「リンゴ」)ではありません。

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

ブラウザのサポート

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

Chrome Edge Firefox Safari Opera