【GAS 基礎】二次元配列って何?

スポンサーリンク

二次元配列

Googleスプレッドシートの操作を中心にGAS(GoogleAppsScript)の基本コードを紹介しています。初心者の方が順番に読んでくだけでGASの基礎コードが理解出来るようになればなと思って、短めの記事で進めて行きたいと思います!

今回は、”二次元配列”について紹介します!

二次元配列とは

前回”配列”について説明しました。

※”配列”についての記事はこちら

“二次元配列”も”配列”です。”二次元配列”と比較して、前回説明した”配列”を表現すると、前回のは、”一次元配列”となります。

次元とは

n個の変数で状態を記述する時、そのnを次元と言う。例、直線は一次元、平面は二次元、空間の三方向のひろがりを表す時は三次元。

ということなので、”配列”の要素の箱の広がり方だと捉えると良いと思います。

“一次元配列”は、次の図のように一方向への広がりになっています。

// 構造
[値1,値2,値3,値4,・・・・]

//取り出す時
配列名[インデックス番号]

というように表現しましたね。

一方、二次元”配列”はというとこんな形になります。

横方向と縦方向の二方向への広がりがあるのが二次元ですので、こんなイメージになりますね。

何かに似ていますね。

真上から見てみるともっと分かりやすいです。

真上から見た図

はい、もう分かりましたね。

そうです。お馴染みのスプレッドシートの表と同じ形です!

この図からも見て分かる通り、”二次元配列”の形はスプレッドシートでデータを扱う上で、めちゃくちゃ分かりやすいのでめちゃくちゃ使います。

二次元配列の作り方

コード上では”二次元配列”は次のような形になっています

[[値1,値2,値3,・・・],[値1,値2,値3,・・・],[値1,値2,値3,・・・]]

分かりにくいと思うので改行します。

[
 [値1,値2,値3,・・・],
 [値1,値2,値3,・・・],
 [値1,値2,値3,・・・]
]

言葉で言うと、「一次元配列の各要素の中に一次元配列が入っている」状態です。

図で見てみましょう。

具体的にデータで考えてみましょう。

こんな感じでデータが入ります。

コードで表すと次のようになります。

[
 ["たろう", "じろう", "さぶろう"],
 ["はなこ", "ともこ", "きくこ"],
 ["しろう", "ごろう", "ろくろう"],
 ["たま", "みけ", "ぽち"],
 ["ケン", "マイク", "ベン"]
]

なんとなく分かって来ましたか?

とう言うことで、実際に上の”二次元配列”を登録してみましょう!

次のコードをスクリプトエディタに書いて実行してください。

二次元配列「names」を登録して、Logger.logで確認するコードです。

function test(){
  // 二次元配列を変数に格納する
  var names2 = [
                ["たろう", "じろう", "さぶろう"],
                ["はなこ", "ともこ", "きくこ"],
                ["しろう", "ごろう", "ろくろう"],
                ["たま", "みけ", "ぽち"],
                ["ケン", "マイク", "ベン"]
              ]

  // ログで表示する
  Logger.log(names2); // 全ての要素を確認
}

実行すると、ログで次のように表示されます。

二次元配列の要素の呼び出し

それでは、登録したデータを呼び出して利用してみましょう。一次元配列と同じように、配列名とインデックスで呼び出しますが、大枠の配列のインデックス、内側の配列のインデックス、両方を指定してあげる必要があります。

配列名[大枠の配列のインデックス][内側の配列のインデックス]

先程の図であった「ごろう」を呼び出すことを考えてみます。

配列名は「names2」

大枠の配列のインデックスは、「2番」

内側の配列のインデックスは、「1番」

ですので次のような形になります。

names2[2][1]

実際に動かして見てみましょう。

次のコードで、「ごろう」が呼び出せるでしょうか。

function test(){
  // 二次元配列を変数に格納する
  var names2 = [
                ["たろう", "じろう", "さぶろう"],
                ["はなこ", "ともこ", "きくこ"],
                ["しろう", "ごろう", "ろくろう"],
                ["たま", "みけ", "ぽち"],
                ["ケン", "マイク", "ベン"]
              ]

  // ログで表示する
  Browser.msgBox(names2[2][1]); // 「ごろう」のはず
}

実行動画

「ごろう」が呼び出されましたね(^^)

呼び出しのインデックスを図にまとめると、スプレッドシートに非常に似ているのがより分かりますね。

二次元配列の要素の変更

要素の変更も一次元配列と同じです。変更したい要素を指定して代入すればOKです。

「ごろう」の要素を変更するコードは次ですね。

names2[2][1] = "変更したごろう"

やってみます。

function test(){
  // 二次元配列を変数に格納する
  var names2 = [
                ["たろう", "じろう", "さぶろう"],
                ["はなこ", "ともこ", "きくこ"],
                ["しろう", "ごろう", "ろくろう"],
                ["たま", "みけ", "ぽち"],
                ["ケン", "マイク", "ベン"]
              ]
  
  // 「ごろう」の要素の値を変更する
  names2[2][1] = "変更したごろう"
  
  // メッセージボックスで表示する
  Browser.msgBox(names2[2][1]);  //「変更したごろう」のはず
}

実行してみましょう。

バッチリですね(^^)

スポンサーリンク

まとめ

二次元配列について説明しました。GASでスプレッドシートを操作する上では必須の知識になります。しっかり整理して覚えましょう!

コメント

タイトルとURLをコピーしました