GASの配列を結合するconcatと連結するjoinメソッドを解説

2023年8月29日

Google Apps Script(GAS)の配列を結合する方法を解説します。

配列の結合方法として複数の配列を結合した配列を生成するconcatメソッドと、配列要素を特定の区切り文字で結合した文字列にするjoinメソッドを紹介します。

GASの配列を結合

Google Apps Script(GAS)では配列を使った処理を行うケースが多いです。

そんな中で、GASの配列を結合したいパターンが出てきます。

スプレッドシートから取得した配列を、別の配列と結合して出力する場合などです。

その他にも配列をカンマ区切りで連結させてcsvファイルのようなフォーマットにすることもあります。

配列を結合するパターンは2種類

Google Apps Script(GAS)で配列の結合は大きく分けて以下の2パターンです。

  1. 2個以上の複数配列を結合した配列を生成
  2. 配列内の要素を区切り文字で結合した文字列を生成

2個以上の複数の配列を結合した配列を生成

複数の配列を結合したい場合は、concatメソッドを利用します。

Array.concat(['A’,’B’,’C’])

concatメソッドは配列オブジェクト(変数)で実行可能で、元の配列と引数の配列を結合した配列を戻り値として返してくれます。

concatメソッドを実行した配列自体には変化が生じない非破壊的メソッドです。

配列内の要素を区切り文字で結合した文字列を生成

1つの配列内にある要素を結合したい場合は、joinメソッドを利用します。

Array.join('区切り文字’)

joinメソッドは配列の要素を引数に指定した区切り文字で連結した文字列を戻り値として返してくれます。

joinもconcatと同じように配列自体には変化が生じない非破壊的メソッドです。

実際にGASのconcatメソッドとjoinメソッドによる配列結合方法と、結合結果をサンプルコードで解説します。

GASのconcatによる配列結合のサンプルコード

まず、concatメソッドによるGoogle Apps Script(GAS)の配列を結合するサンプルコードを紹介します。

function myFunction() {
  //配列リテラル[]で配列変数を宣言(初期値代入)
  let array = ['りんご','いちご','みかん'];
  //配列変数を実行ログに出力
  console.log(array);
  //concatメソッドで配列を結合
  array = array.concat(['ぶどう','もも']);
  //配列変数を実行ログに出力
  console.log(array); 
}

1次元配列を宣言した後、concatメソッドで1次元の配列リテラルを結合して実行ログに出力しています。

Google Apps Script(GAS)でconcatメソッドで配列を結合するサンプルコード

なお、前述のサンプルコードは配列リテラルを引数に指定しましたが、配列変数の引数も可能です。

function myFunction() {
  //配列リテラル[]で配列変数を宣言(初期値代入)
  let array = ['りんご','いちご','みかん'];
  //配列変数を実行ログに出力
  console.log(array);
  let array2 = ['ぶどう','もも'];
  //concatメソッドで配列を結合
  array = array.concat(array2);
  //配列変数を実行ログに出力
  console.log(array); 
}
Google Apps Script(GAS)でconcatメソッドで配列を結合するサンプルコード(配列変数を引数指定)

さらに、concatメソッドは複数の配列変数または配列リテラルを引数に指定できます。

function myFunction() {
  //配列リテラル[]で配列変数を宣言(初期値代入)
  let array = ['りんご','いちご','みかん'];
  //配列変数を実行ログに出力
  console.log(array);
  //concatメソッドで配列を結合
  array = array.concat(['ぶどう','もも'],['バナナ','レモン','ナシ']);
  //配列変数を実行ログに出力
  console.log(array); 
}

引数に指定した順番に配列を結合してくれます。

Google Apps Script(GAS)でconcatメソッドで配列を結合するサンプルコード(複数の配列リテラルを引数指定)

このようにconcatメソッドを使えば、複数の配列を1つの配列にまとめることが可能です。

joinによる配列要素の区切り文字で連結

次に配列要素を区切り文字で結合した文字列を生成するGoogle Apps Script(GAS)のサンプルコードを紹介します。

function myFunction2() {
  //配列リテラル[]で配列変数を宣言(初期値代入)
  let array = ['りんご','いちご','みかん'];
  //配列変数を実行ログに出力
  console.log(array);
  //joinメソッドで配列を|区切りの文字列に結合
  array = array.join('|');
  //配列変数を実行ログに出力
  console.log(array); 
}

サンプルコードではjoinメソッドの引数に「|」を指定し、「|」で配列を連結した文字列を生成して実行ログに出力します。

Google Apps Script(GAS)のjoinメソッドで区切り文字で配列要素を結合した文字列を生成するサンプルコード

なお、joinメソッドの引数を指定しない場合は、カンマ区切り(,)で出力されます。

function myFunction2() {
  //配列リテラル[]で配列変数を宣言(初期値代入)
  let array = ['りんご','いちご','みかん'];
  //配列変数を実行ログに出力
  console.log(array);
  //引数なしのjoinメソッドで配列をカンマ区切りの文字列に結合
  array = array.join();
  //配列変数を実行ログに出力
  console.log(array); 
}
Google Apps Script(GAS)のjoinメソッドで引数を指定しないとカンマ区切りで配列要素を結合した文字列を生成するサンプルコード

このようにjoinメソッドを使うと配列の要素を引数の区切り文字で結合して文字列を作成できます。

joinで区切り文字なしで結合したい場合は?

さきほど紹介したjoinメソッドのサンプルコードでは、何かしらの区切り文字で配列要素を連結した文字列を生成しました。

joinメソッドで区切り文字なしで配列を結合するにはどうすればよいでしょうか?

その場合は、joinメソッドの引数を「"」という形で指定すれば、区切り文字なしで結合可能です。

Array.join(")

配列要素をそのまま結合した文字列を作成したい場合は、上記の形でjoinメソッドを活用しましょう。

まとめ・終わりに

今回、Google Apps Script(GAS)で配列を結合する方法を紹介しました。

GASの配列の結合方法としては、concatメソッドを使った配列の結合とjoinメソッドを使った配列要素の連結があります。

concatでは引数に指定した複数個の配列を結合して、より大きな配列を生成できます。

また、joinではカンマ区切りや指定した区切り文字で配列要素を結合した文字列を出力可能です。

GASの中で配列を結合したい処理が出てくる場合はぜひ参考にしてみてください。