GASの配列要素に値を追加する4つの方法(push,unshift,splice,添字)

2023年1月19日

Google Apps Script(GAS)を利用していると、配列型の変数を扱う機会はとても多いです。

配列操作では配列要素に値を追加する処理が発生しますが、GASの配列の追加には4種類の方法があります。

そこで、GASで配列要素を追加する4通りのやり方と、オススメの配列追加方法を解説します。

GASでは配列の追加操作は頻度高

Google Apps Script(GAS)では配列型変数を操作する機会が多いです。

さまざまなGoogle系サービスを扱うメソッドを実行すると、配列が戻り値であることが多いからです。

さらに、GASでデータの保存先として用いられるスプレッドシートでは、複数のセルに値を書き込むsetValuesメソッドで2次元配列の引数が求められます。

それゆえに、配列操作がGASでは色々な処理で必要です。

GASで配列に要素(値)を追加する方法は4種類

そんなGoogle Apps Script(GAS)で定義された配列変数に、要素として値を追加する方法は以下の4種類あります。

  1. 配列に添字をつけて要素を追加
  2. pushメソッドで配列の末尾に要素を追加
  3. unshiftメソッドで配列の先頭に要素を追加
  4. spliceメソッドで配列の指定位置に要素を追加(複数可)

それぞれのやり方でどのように配列に値を追加するかの方法や追加される位置が異なります。

1~4の配列の値追加のやり方についてコードを交えて解説します。

①配列に添字をつけて値を追加

Google Apps Script(GAS)で配列に値を追加する際に最も最初に学ぶのが添字を付けて値を追加する方法です。

array[0] = 10;

[]カッコの中に配列要素の何番目か表す数字を添字として記入し、数字を代入しています。

配列を操作するやり方としては、入門書で必ず学習する方法のため、分かりやすいのがメリットです。

function addArray1() {
  const array = ['りんご', 'みかん', 'いちご'];
  //配列に格納されている内容をログ出力
  console.log(array);
  //配列に添字を指定する形の要素を追加
  array[3] = 'ぶどう';
  //配列に格納されている内容をログ出力
  console.log(array);  
}

上記のような配列を定義したGASサンプルコードで、配列型変数であるarrayに添え字で値を追加しています。

Google Apps Script(GAS)で配列型の変数で[]カッコ内に添字を指定して要素を追加する方法

console.logのログ出力結果から、添字で指定した位置に配列要素が追加されています。

なお、すでに配列要素が存在する要素では、値が書き換わる形になります。

また、配列要素は3つしかないのに、array[4]=10と定義すると、未定義のarray[3]はundifinedが設定される点が注意です。

②pushメソッドで配列の末尾に値を追加

続いてGoogle Apps Script(GAS)の配列変数に要素を追加する方法として、pushメソッドを実行する方法です。

プログラミング言語などでも「push,pop」を使った配列操作はメジャーな方法として知られています。

array.push(10);

値を追加したい配列で、ピリオド(.)を押すと、pushメソッドが配列変数のオブジェクトで利用可能なのが確認できます。

配列で使用するpushメソッドは「配列の末尾に要素となる値を追加する」処理です。

function addArray2() {
  const array = ['りんご', 'みかん', 'いちご'];
  //配列に格納されている内容をログ出力
  console.log(array);
  //pushメソッドで配列要素を末尾に追加
  array.push('ぶどう');
  //配列に格納されている内容をログ出力
  console.log(array);  
}

実際に配列の変数オブジェクトに対してpushメソッドを実行すると、値が追加されているのがログ出力からわかります。

Google Apps Script(GAS)で配列にpushメソッドを使い、要素を追加する方法を解説するサンプルコード

pushメソッド実施すると、添字のように実は順番が抜けてしまうということがないのがメリットです。

さらに配列要素の追加はpushを使うユーザーも多く、プログラミング経験者であればGASコードも分かりやすいのも特徴です。

③unshiftメソッドで配列の先頭に値を追加

Google Apps Script(GAS)の配列オブジェクトでメソッドを実行して要素を追加する方法として、unshiftメソッドがあります。

unshiftはさきほど紹介したpushと反対に、配列の先頭に要素を追加するメソッドです。

array.unshift(10);

値を追加したい配列で、ピリオド(.)を入力して「u」を押すと、unshiftメソッドが配列変数のオブジェクトで利用可能なのが確認できます。

function addArray3() {
  const array = ['りんご', 'みかん', 'いちご'];
  //配列に格納されている内容をログ出力
  console.log(array);
  //unshiftメソッドで配列要素を先頭に追加
  array.unshift('ぶどう');
  //配列に格納されている内容をログ出力
  console.log(array);  
}

実際にGASのサンプルコードで定義された配列でunshiftメソッドを実行すると、配列の最初に引数に指定した値が追加されています。

Google Apps Script(GAS)で配列オブジェクトでunshiftメソッドで配列の先頭に要素を追加するサンプルコード

これまではログ出力では末尾に追加されていましたが、unshiftメソッドの引数が1番目に表示されています。

pushメソッドの場合は配列の後ろに追加するため、「後ろの要素ほど新しく追加されている」という規則になります。

一方、unshiftメソッドの場合、「前の要素ほど新しく追加されている」と逆のルールです。

④spliceメソッドで配列の指定位置に値を追加(複数可)

最後の4番目のGoogle Apps Script(GAS)での配列の要素追加方法がspliceメソッドです。

spliceメソッドは配列要素の追加方法として、他のやり方にはない以下2つの特徴があります。

  1. 要素の追加位置を指定できる
  2. 複数の要素を追加できる

これまで紹介してきた添字やpush、unshiftよりも複雑ですが、覚えると配列の途中に要素を挿入できるなど、色々な利用が可能です。

array.splice(追加位置, 0, 追加要素1[,追加要素2,...追加要素n]);

まずは1つの要素を配列の2番目に挿入・追加するGASサンプルコードを紹介します。

function addArray4() {
  const array = ['りんご', 'みかん', 'いちご'];
  //配列に格納されている内容をログ出力
  console.log(array);
  //spliceメソッドで配列の2番目に要素を追加
  array.splice(1,0,'ぶどう');
  //配列に格納されている内容をログ出力
  console.log(array);  
}

array.splice(1,0,’ぶどう’)で「array[1]にぶどうを追加する」という処理が実行されます。

Google Apps Script(GAS)でspliceメソッドで複数の配列要素を指定位置に追加挿入するサンプルコード

ログ出力した結果では、指定した番号の位置以降の要素がずれて、指定位置に値が追加されます。

さらに、引数を増やすことで1つの要素ではなく複数要素を追加するサンプルコードも用意しました。

function addArray4() {
  const array = ['りんご', 'みかん', 'いちご'];
  //配列に格納されている内容をログ出力
  console.log(array);
  //spliceメソッドで配列の2番目に要素を追加
  array.splice(1,2,'ぶどう','マスカット','メロン');
  //配列に格納されている内容をログ出力
  console.log(array);  
}

こちらを実行すると、2番目以降の配列要素の位置が後ろにずれて、spliceメソッドで引数指定した値が追加されます。

Google Apps Script(GAS)の配列要素に値を追加する4つの方法(push,unshift,splice,添字)

このようにspliceでは複数の配列要素を追加したい位置に挿入したい場合に便利です。

さらに、2番目の引数に自然数を指定すると、1番目の引数の位置から自然数の分まで要素の削除して、要素が追加できます。

3番目以降の引数を指定しないようにすることで、GASの配列要素を削除するメソッドとしてもspliceは用いられます。

pushメソッドによる配列の要素追加が一般的

なお、今回紹介したGoogle Apps Script(GAS)での4種類の配列の要素を追加する方法でオススメはpushメソッドです。

GASで配列を学習する際に最初に覚えるのは添字で分かりやすいですが、末尾に追加するには、配列の要素数を知る必要があります。

しかし、pushメソッドの場合、要素の末尾に挿入されるため、配列の要素数を知らなくても使用できます。

unshiftメソッドもありますが、プログラミングに多いのはpush/popの「先入れ先出し」のため、pushメソッドが一般的です。

4つ目に紹介したspliceメソッドは好きな配列位置に好きな要素数を追加できて複雑と色々と使えます。

ただ、末尾に追加するには、添字の場合と同じように配列の要素数を事前に調べる処理が必要です。

それゆえに配列の追加・削除としてオーソドックスかつ、覚えやすいpushメソッドがおすすめです。

まとめ・終わりに

今回、Google Apps Script(GAS)の配列型変数に値を追加する4種類の方法を紹介しました。

GASの配列に要素を追加するには、添字、pushメソッド、unshiftメソッド、spliceメソッドの4種類があります。

それぞれ配列要素の追加方法が異なっており、用途に応じた使い分けができると便利です。

最もオーソドックスな使い方が配列オブジェクトでのpushメソッドなので覚えておきましょう。

ぜひ、GASによる配列要素の追加では、添字/push/unshift/spliceを配列の利用用途に応じて使い分けてみてください。