初心者でも安心!GASのforeach徹底攻略ガイド
GASで配列を操作するのに、foreachってよく聞くんだけど、どうやって使うんだろう?ちょっと難しそうで…

猫男

catman
やるならいまでしょ。catmanがGASのforeachをマスターするための道をお供するぞ
GASのforeachとは何か
GAS(Google Apps Script)のforeachは、配列を便利に操作するためのメソッドだ。
基本的なforeachの使い方
まずは基本から。
foreachは配列の各要素に対して、指定した処理を一つ一つ順番に実行するんだ。
const numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(number) {
Logger.log(number);
});
このコードでは、numbersという配列の各要素をログに出力している。
indexやアロー関数を使ったforeach
GASのforeachでは、インデックスも利用できる。
const fruits = ['apple', 'banana', 'cherry'];
fruits.forEach((fruit, index) => {
Logger.log(index + ': ' + fruit);
});
ここでは、アロー関数と一緒に使ってインデックスを出力している。
なるほど、foreachでインデックスも取れるんだね!アロー関数も使いやすそう!

猫男
スキップや抜ける方法を試してみよう
foreachでスキップする
特定の条件でスキップしたい場合、continueは使えないけど工夫次第で似たような動作ができるんだ。
const numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) => {
if (number === 3) return; // 3をスキップ
Logger.log(number);
});
この場合、3だけがログに出力されないようになっている。
foreachを途中で抜ける
しかし、途中で抜ける(break)ことはできない!
スクリプトの見直しが必要だ。for
文やsome
メソッドの使用を検討しよう。
二次元配列とGASのforeach
二次元配列の場合でもforeachは強力だ。
二次元配列のforeach
二次元配列を含むデータでは、二重にforeachを効かせるといい。
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
matrix.forEach(row => {
row.forEach(value => {
Logger.log(value);
});
});
各要素が順番に出力されることで、二次元配列を簡単に扱える。
二次元配列もforeachでうまく扱えるんだね。これなら難しくないかも!

猫男
応用編:GASで二次元配列や連想配列を使ったforeach
応用編まで駆け抜けるぞ!
getRange と foreachを使おう
スプレッドシートのデータを取得し、操作する際にも使える。getRangeと配列を組み合わせよう。
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const range = sheet.getRange('A1:C3');
const values = range.getValues();
values.forEach(row => {
row.forEach(value => {
Logger.log(value);
});
});
スプレッドシートのデータを配列形式で取得し、foreachでそれぞれの値を出力している。
本当にいろんな場面で使えるんだね!GASのforeachがいまでは友だちみたいだ。

猫男
練習問題:GASのforeachを試してみよう
以下のスクリプトを完成させて、1から10までの偶数だけをログに出力してみてください。
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// ここにforeachを使った処理を書く
解答と解説
完成したスクリプトはこちらです。
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
numbers.forEach((number) => {
if (number % 2 === 0) {
Logger.log(number); // 偶数のときログに出力
}
});
解説:
– numbers
という配列から始め、forEach
メソッドを使用し、配列の各要素にアクセスしています。
– number % 2 === 0
で偶数を判断し、条件が一致する場合にのみLogger.log
で出力しています。