GAS初心者必見!連想配列のループ・取得方法とキーの存在確認テクニック

GASで連想配列を使いたいんですが、どう扱えばいいのか分からなくて…特にループやキーの確認方法が知りたいです。
猫男
猫男
catman
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
catman
安心しろ、GASでの連想配列を使いこなせれば、データ処理がもっと簡単になるはずさ。頑張ってな。