Google Apps Scriptで簡単操作!GASのMapオブジェクトの使い方
GASのMapってどうやって使うんだろう?

猫男

catman
ふっ、catmanが「GASのマップオブジェクト」についてわかりやすく教えよう!まずは基本からだ!
GASでのMapオブジェクトの基本
GASでは、JavaScriptと同様にマップオブジェクトを使える。
これはキーと値のペアを保持する便利なデータ構造だ。
Mapの作成と基本操作
const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');
Logger.log(myMap.get('key1')); // value1
Logger.log(myMap.has('key2')); // true
myMap.delete('key1');
Logger.log(myMap.size); // 1
✅ new Map()で新しいマップを作成し、set()メソッドでキーと値を設定する。
Mapオブジェクトと配列の関係
Mapオブジェクトは配列と相互に変換できる。各要素を配列として扱うことができる。
const arrayFromMap = Array.from(myMap);
Logger.log(arrayFromMap); // [['key2', 'value2']]
✅ Array.from()でMapを配列に変換することができる。
Mapオブジェクトって配列とすごく似てるんだね。でも、二次元配列とかも扱えるのかな?

猫男

catman
もちろんさ。GASではMapを使用して二次元的なデータ構造を作れるのだ!
GASでMapによる二次元配列の管理
Mapと二次元配列の利用
Mapは他のMapオブジェクトや配列を値として持てるので、二次元データの管理にも役立つ。
const matrixMap = new Map();
matrixMap.set('row1', new Map([['col1', 1], ['col2', 2]]));
matrixMap.set('row2', new Map([['col1', 3], ['col2', 4]]));
Logger.log(matrixMap.get('row1').get('col1')); // 1
✅ Mapの中にMapを設定することで、二次元配列を管理できる。
アロー関数とMapの組み合わせ
アロー関数でMapを操作
Mapはアロー関数とも相性が良く、ループや操作を簡潔に書くことができる。
matrixMap.forEach((cols, row) => {
cols.forEach((value, col) => {
Logger.log(${row} ${col}: ${value});
});
});
✅ forEach()を使ってアロー関数を用いると、見やすく簡潔にMap内の操作ができる。
出たな〜、アロー関数!!

猫男
練習問題:Mapオブジェクトの応用
次のコードでMapを使い、’key3’に対応する値を’updated value’に変更し、その後、全てのキーと値をログに出力するスクリプトを書きなさい。
解答・解説
const sampleMap = new Map();
sampleMap.set('key1', 'value1');
sampleMap.set('key2', 'value2');
sampleMap.set('key3', 'value3');
// 解答部分:'key3'の値を更新
sampleMap.set('key3', 'updated value');
// 全てのキーと値をログに出力
sampleMap.forEach((value, key) => {
Logger.log(${key}: ${value});
});
解説:
– set()メソッドで既存のキーの値を更新できる。
– forEach()メソッドを使い、アロー関数で各キーと値をログに出力した。これはMap操作の基本となる。