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 |