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

猫男

catman
連想配列は便利なデータ構造だ。catmanが「GASでの連想配列の基本」を教えよう。
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つずつ取り出し、そのキーに対応する値を参照する方法だ。
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
これでキーの存在を簡単に確認できるようになる。
[h2]GAS連想配列を使いこなすための練習問題[/h2]
以下のオブジェクトを使って、キー「subject」が存在するか確認し、ある場合はその値をログに出力してください。
var scores = {
math: 95,
science: 80,
history: 88,
subject: "数学"
};
[h2]解答・解説[/h2]
if (scores.hasOwnProperty('subject')) {
Logger.log(scores.subject); // 数学
}
まずhasOwnPropertyメソッドでキー「subject」の存在を確認し、存在するなら続けて値を取得しLoggerで出力しています。これで、指定したキーが存在するかどうかを安全に確認できるようになります。
これで連想配列の使い方がよく分かりました!ありがとうございます、catman!

猫男

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