【GAS入門】連想配列の使い方 〜 ループ・取得方法とキーの存在確認テクニック 〜

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