JavaScriptの学習・参考リファレンス/ドキュメント

JavaScript、ECMAScriptの学習と参考メモ 入門~初心者~中級者~上級者を目指して

Map 順序付きのキー・バリュー

JavaScriptで使えるキーと値の組を順序付きで保持するMap型についての説明です。

基本的な使い方

Mapの定義

let map = new Map([[1, 'a'], [2, 'b'], [3, 'c']]);

イテレータを使った定義もできます。

let myIterable = {};
myIterable[Symbol.iterator] = function* () {
    yield [1, 'a'];
    yield [2, 'b'];
    yield [3, 'c'];
};
let map = new Map(myIterable);

Mapのサイズ

let map = new Map([[1, 'a'], [2, 'b'], [3, 'c']]);
console.log(map.size); // 3

Mapへの要素追加・削除・存在チェック

let map = new Map();

// 要素の追加
map.set(1, 'a');
map.set(2, 'b')
   .set(3, 'c'); // メソッドチェーンで連続して追加できる

console.log(map); //1: "a", 2: "b", 3: "c"

// キーから要素を取得
console.log(map.get(2)); // "b"
console.log(map.get(4)); // undefined

// 要素の存在チェックと削除
console.log(map.has(2)); // true
console.log(map.delete(2)); // true
console.log(map.has(2)); // false

// 存在しないキーでの削除
console.log(map.delete(4)); // false

// マップのクリア
console.log(map.size); // 2
map.clear()
console.log(map.size); // 0

Mapの繰り返し処理

let map = new Map();
map.set(1, 'a')
   .set(2, 'b')
   .set(3, 'c');

map.forEach((value, key, map) =>{
  console.log(`map[${key}] = ${value}`);
});

for (let [key, value] of map.entries()){
  console.log(`map[${key}] = ${value}`);  
}

for (let key of map.keys()){
  console.log(`map[${key}] = ${map.get(key)}`);  
}

for (let value of map.values()){
  console.log(value);  
}
作成日 : 2020年06月14日