【GAS】配列のループ処理方法3つ!forループにも種類があります。


今回は、Google App Scriptsで配列をループする方法を見ていきます。

配列をループとは、配列内の要素について、順番にアクセスすることをいうんだにゃ。使用頻度が高く、種類が複数あるので、しっかりと覚えておきたいんだにゃ。
配列とは?

まず、配列について確認しておきましょう。
複数の値を1つのデータのように取り扱うデータ構造

複数の要素を一つにまとめることで、扱いやすくした変数に近いものだにゃ。
例えば、バナナ、ブドウ、メロン、キウイが入っているフルーツという名前の配列があるとすると、プログラミングでは、
const fruits = [“バナナ”, “ブドウ”, “メロン”, “キウイ”];
と書きます。
そして、このフルーツ配列の各要素には、順番にインデックスという番号が振られていて、先頭が0番、次が1番と続いていき、それぞれアクセスできます。
fruits[1] は「ブドウ」を表します。
そして、今回は先頭から順番に要素にアクセスして取り出したいということを考えています。

つまり、配列の先頭からループさせて取り出していく感じになり、このことを配列をループなんて言ったりしますね。この方法には、いくつか種類がありますので、順番に見ていきましょう。
ループ処理方法3選
forループでインデックスを指定する方法

まずは、一般的なループ方法から見てみます。これは、一般的にループをする際に使われているForループを使い、インデックスから配列にアクセスしている形になります。
const myFunction = () => {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//配列の定義
const ball_game = ["野球","サッカー","ラグビー","テニス","ゴルフ"];
//Forループで変数iを増やしていき、インデックスで順に配列にアクセス
for (let i = 0; i < ball_game.length; ++i) {
Logger.log(ball_game[i]);
}
}
>> 野球
サッカー
ラグビー
テニス
ゴルフ
for-ofによるループ

次がfor-ofによるループだにゃ。これは、配列をループすることを前提として行うため、インデックスからアクセスするのではなく、配列の先頭から順にアクセスしていく形だにゃ。
const myFunction = () => {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//配列の定義
const ball_game = ["野球","サッカー","ラグビー","テニス","ゴルフ"];
//for-ofによる配列へのアクセス。先頭から順に変数eleに代入されていく。
for (const ele of ball_game) {
Logger.log(ele);
}
}
>> 野球
サッカー
ラグビー
テニス
ゴルフ
forEachによるやり方(インデックスあり)

最後がforEachを使ったループだにゃ。書き方からみるとfor-ofと同じように先頭から順番にアクセスするんだにゃ。

他と異なる点は、配列の関数として動き、fanctionをとるというところです。そして、引数に要素だけではなく、インデックスが戻ります。詳しくは下の式を見てもらうとわかりやすいと思います。
const myFunction = () => {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const ball_game = ["野球","サッカー","ラグビー","テニス","ゴルフ"];
ball_game.forEach((ele, index) => {
Logger.log(`${index}:${ele}`);
});
}
>> 0:野球
1:サッカー
2:ラグビー
3:テニス
4:ゴルフ
結局どれを使えばいいの?

さて、今後配列ループを使いたい機会があると思いますが、その際、どれを使えばいいか迷うこともあります。人によると思いますが、私は次のように考えて使っています。
- 基本はfor-ofループを使う。
- インデックスを使いたい時は、forEachを使う
- forループはあまり使わない。

使い方は人それぞれだから、使いやすいものに合わせて使うと良いんだにゃ。でも、こういう書き方もあるんだにゃと知っていることが大切だから、色々広く覚えておくんだにゃ。
プログラミングを学ぶならTechAcademy(テックアカデミー)がおすすめ!

独学で苦戦している人は、一度しっかりと基礎を学ぶと次のステップへ進めますよ。今のおすすめは、TechAcademy(テックアカデミー)ですね。
- オンラインで選抜された現役エンジニアから学ぶことができる
- 自宅からWeb制作・プログラミング・アプリ開発など幅広い分野を学べる
- 学ぶだけではなく、転職の支援、副業に活かせるスキルの習得、副業の仕事紹介まで行っている

無料体験や相談もあるから、一度試してみてもいいんだにゃ!
\無料体験、無料相談はこちらから/