【GAS入門】連想配列の使い方 〜 ループ・取得方法とキーの存在確認テクニック 〜
GASで連想配列を使いたいんですが、どう扱えばいいのか分からなくて…特にループやキーの確認方法が知りたいです。

猫男

catman
連想配列は便利なデータ構造だ。catmanに任せな!
GASの連想配列の基本的な使い方
GASでは、連想配列はJavaScriptのオブジェクトとして表現できる。
var student = {
name: "タロウ",
age: 20,
grade: "A"
};
Logger.log(student.name); // タロウ
オブジェクトの形で「キー」と「値」をペアで持つのが特徴だ。
GASで連想配列をループで回す
連想配列をループで回す方法は、for…in ループを使おう。
for (var key in student) {
Logger.log(key + ": " + student[key]);
}
各キーを1つずつ取り出し、そのキーに対応する値を参照する方法だ。
name: タロウ
age: 20
grade: A
と出力されるはずさ。
GASで連想配列から要素を取得する
連想配列の要素は、ドットまたはブラケット記法で取得できる。
var studentName = student["name"]; // タロウ
var studentAge = student.age; // 20
どちらの方法も使いこなせるようにしておこう。
2次元配列を連想配列として使う
GASでも2次元配列と連想配列を組み合わせて使うケースが出てくる。
var students = [
{name: "タロウ", age: 20},
{name: "ハナコ", age: 22}
];
Logger.log(students[0].name); // タロウ
Logger.log(students[1]["age"]); // 22
配列の中にオブジェクトを入れて管理すると、一度に複数のデータを扱えるな。
連想配列内のキー存在確認
キーが存在するかどうかを確認するにはhasOwnPropertyメソッドの出番。
var hasGrade = student.hasOwnProperty('grade'); // true
var hasAddress = student.hasOwnProperty('address'); // false
これでキーの存在を簡単に確認できるはずだ。
GASの連想配列を使いこなすための練習問題
以下のオブジェクトを使って、キー「subject」が存在するか確認し、ある場合はその値をログに出力してください。
var scores = {
math: 95,
science: 80,
history: 88,
subject: "数学"
};
解答・解説
if (scores.hasOwnProperty('subject')) {
Logger.log(scores.subject); // 数学
}
まずhasOwnPropertyメソッドでキー「subject」の存在を確認。
存在するなら続けて値を取得しLoggerで出力しています。
これで、指定したキーが存在するかどうかを安全に確認できます。
これで連想配列の使い方がよく分かりました!ありがとうございます、catman!

猫男

catman
安心しろ、GASでの連想配列を使いこなせれば、データ処理がもっと簡単になるはずさ。