こんにちは!
Yuki (@yukibnb) です。
前回Google Apps Script (GAS) で一次元配列の要素を追加・削除する方法をGIF動画付きで解説しました。
www.yukibnb.com
今回はその応用として二次元配列の要素を追加・削除する方法をサンプルやGIF動画を使ってやさしく解説します。
前提
今回解説する内容は以下ふたつの記事の内容を理解されている前提で進めます。
「一次元配列と二次元配列の違いって?」、「一次元配列の要素を追加・削除する方法って?」という方はまず上記ふたつの記事をささっとお読み頂くことをおすすめします。
ふたつのパターン
今回サンプルとして使用する二次元配列はこちらです。
//二次元配列 var priceList = [["lemon","JPY100"],["orange","JPY150"],["peach","JPY200"]]; //二次元配列 (見やすくしたバージョン) var priceList = [ ["lemon","JPY100"], ["orange","JPY150"], ["peach","JPY200"] ];
二次元配列priceListの中に一次元配列が3つ入っています。
スプレッドシートの表のようなイメージです。
今日紹介するのは以下2パターンです。
- 二次元配列内の一次元配列を丸々操作(追加・削除)する方法
- 二次元配列内の一次元配列の中の値を操作(追加・削除)する方法
文字だけみるとわかりにくいですね。具体的にはこのようなイメージです。
『priceListにはレモン、オレンジ、桃の料金が掲載されている。この表にリンゴの料金も掲載したい』という場合、一次元配列["apple", "JPY250"]
を追加する必要があります。
これが「二次元配列内の一次元配列を丸々操作する」ということです。行を追加するイメージです。
次に『priceListにはレモン、オレンジ、桃の料金が掲載されている。料金以外に産地も掲載したい』という場合、["orange","JPY150"]
に産地を追加して["orange","JPY150","Brazil"]
とする必要があります。
これが「二次元配列内の一次元配列の中の値を操作する」ということです。列を追加するイメージです。
ではもっと具体的にGIF動画も交えてみていきましょう!
二次元配列内の一次元配列を丸々操作(追加・削除)する方法
unshift | 二次元配列の先頭に一次元配列を追加する
unshiftを使用すると配列の先頭に要素を追加することができます。
括弧内に一次元配列["apple", "JPY250"]
を入力することで、二次元配列priceListの先頭に一次元配列["apple", "JPY250"]
を追加しました。
//二次元配列 var priceList = [ ["lemon","JPY100"], ["orange","JPY150"], ["peach","JPY200"] ]; //二次元配列の先頭に一次元配列を追加する priceList.unshift(["apple","JPY250"]); //ログ⇒[["apple","JPY250"],["lemon","JPY100"],["orange","JPY150"],["peach","JPY200"]] Logger.log(priceList);
push | 二次元配列の末尾に一次元配列を追加する
pushを使用すると配列の末尾に要素を追加することができます。
括弧内に一次元配列["apple", "JPY250"]
を入力することで、二次元配列priceListの末尾に一次元配列["apple", "JPY250"]
を追加しました。
//二次元配列 var priceList = [ ["lemon","JPY100"], ["orange","JPY150"], ["peach","JPY200"] ]; //二次元配列の末尾に一次元配列を追加する priceList.push(["apple","JPY250"]); //ログ⇒[["lemon","JPY100"],["orange","JPY150"],["peach","JPY200"],["apple","JPY250"]] Logger.log(priceList);
shift | 二次元配列の先頭の一次元配列を削除する
shiftを使用すると配列の先頭の要素を削除することができます。
二次元配列priceListの先頭の一次元配列["lemon","JPY100"]
を削除しました。
var priceList = [ ["lemon","JPY100"], ["orange","JPY150"], ["peach","JPY200"] ]; //二次元配列の先頭の一次元配列を削除する priceList.shift(); //ログ⇒[["orange","JPY150"],["peach","JPY200"]] Logger.log(priceList);
pop | 二次元配列の末尾の一次元配列を削除する
popを使用すると配列の末尾の要素を削除することができます。
二次元配列priceListの末尾の一次元配列["peach","JPY200"]
を削除しました。
var priceList = [ ["lemon","JPY100"], ["orange","JPY150"], ["peach","JPY200"] ]; //二次元配列の末尾の一次元配列を削除する priceList.pop(); //ログ⇒[["lemon","JPY100"],["orange","JPY150"]] Logger.log(priceList);
二次元配列内の一次元配列の中の値を操作(追加・削除)する方法
ではここからは二次元配列内の一次元配列の中の値を操作する方法を見ていきましょう。
ポイントさえ押さえれば方法はほとんど同じです。
二次元配列の中の一次元配列はpriceList[インデックス番号]
で指定できます。
例えば["orange","JPY150"]
を指定したい場合、priceList[1]
と書けばOKです。
そして["orange","JPY150"]
の先頭に値を追加したい場合、priceList[1].unshift(値)
と書きます。
インデックス番号がポイントと覚えてください。
unshift | 二次元配列内の一次元配列の先頭に要素を追加する
priceListのインデックス番号1、["orange","JPY150"]
の先頭に産地の"Brazil"を追加しました。
var priceList = [ ["lemon","JPY100"], ["orange","JPY150"], ["peach","JPY200"] ]; //二次元配列のインデックス番号1、["orange","JPY150"]の先頭に要素を追加する priceList[1].unshift("Brazil"); //ログ⇒[["lemon","JPY100"],["Brazil","orange","JPY150"],["peach","JPY200"]] Logger.log(priceList);
push | 二次元配列内の一次元配列の末尾に要素を追加する
priceListのインデックス番号1、["orange","JPY150"]
の末尾に産地の"Brazil"を追加しました。
var priceList = [ ["lemon","JPY100"], ["orange","JPY150"], ["peach","JPY200"] ]; //二次元配列のインデックス番号1、["orange","JPY150"]の末尾に要素を追加する priceList[1].push("Brazil"); //ログ⇒[["lemon","JPY100"],["orange","JPY150","Brazil"],["peach","JPY200"]] Logger.log(priceList);
shift | 二次元配列内の一次元配列の先頭の要素を削除する
priceListのインデックス番号1、["orange","JPY150"]
の先頭の要素"orange"を削除しました。
var priceList = [ ["lemon","JPY100"], ["orange","JPY150"], ["peach","JPY200"] ]; //二次元配列のインデックス番号1、["orange","JPY150"]の先頭の要素"orange"を削除する priceList[1].shift(); //ログ⇒[["lemon","JPY100"],["JPY150"],["peach","JPY200"]] Logger.log(priceList);
pop | 二次元配列内の一次元配列の末尾の要素を削除する
priceListのインデックス番号1、["orange","JPY150"]
の末尾の要素"JPY150"を削除しました。
var priceList = [ ["lemon","JPY100"], ["orange","JPY150"], ["peach","JPY200"] ]; //二次元配列のインデックス番号1、["orange","JPY150"]の末尾の要素"JPY150"を削除する priceList[1].pop(); //ログ⇒[["lemon","JPY100"],["orange"],["peach","JPY200"]] Logger.log(priceList);
まとめ
今回は二次元配列の要素を追加・削除する方法を以下2パターン解説しました。
- 二次元配列内の一次元配列を丸々操作(追加・削除)する方法
- 二次元配列内の一次元配列の中の値を操作(追加・削除)する方法
今回解説した方法にfor文などのループを組み合わせると、スプレッドシートを高速で操作できるようになります。
本記事が二次元配列操作の参考になれば幸いです。