Yuki's bnb blog

こんにちは!Yukiといいます。本業のかたわら大阪で2016年夏から民泊運営のお手伝いをしています。民泊業務に関する様々なことを自動化・効率化したいと思い日々活動しています。 お気軽にコメント・お問い合わせください :) TOEICスコア 985

【初心者向けGAS】二次元配列の要素を追加・削除する方法をやさしく解説

f:id:yukibnb:20200124133214p:plain

こんにちは!
Yuki (@yukibnb) です。

前回Google Apps Script (GAS) で一次元配列の要素を追加・削除する方法をGIF動画付きで解説しました。
www.yukibnb.com

今回はその応用として二次元配列の要素を追加・削除する方法をサンプルやGIF動画を使ってやさしく解説します。

 

前提

今回解説する内容は以下ふたつの記事の内容を理解されている前提で進めます。

www.yukibnb.com

www.yukibnb.com

「一次元配列と二次元配列の違いって?」、「一次元配列の要素を追加・削除する方法って?」という方はまず上記ふたつの記事をささっとお読み頂くことをおすすめします。

 

ふたつのパターン

今回サンプルとして使用する二次元配列はこちらです。

//二次元配列
var priceList = [["lemon","JPY100"],["orange","JPY150"],["peach","JPY200"]];

//二次元配列 (見やすくしたバージョン)
var priceList = [
                  ["lemon","JPY100"],
                  ["orange","JPY150"],
                  ["peach","JPY200"]
                ];

二次元配列priceListの中に一次元配列が3つ入っています。

スプレッドシートの表のようなイメージです。
f:id:yukibnb:20200124134526p:plain
 

今日紹介するのは以下2パターンです。

  • 二次元配列内の一次元配列を丸々操作(追加・削除)する方法
  • 二次元配列内の一次元配列の中の値を操作(追加・削除)する方法
 
文字だけみるとわかりにくいですね。具体的にはこのようなイメージです。

priceListにはレモン、オレンジ、桃の料金が掲載されている。この表にリンゴの料金も掲載したい』という場合、一次元配列["apple", "JPY250"]を追加する必要があります。

これが「二次元配列内の一次元配列を丸々操作する」ということです。行を追加するイメージです。


次に『priceListにはレモン、オレンジ、桃の料金が掲載されている。料金以外に産地も掲載したい』という場合、["orange","JPY150"]に産地を追加して["orange","JPY150","Brazil"]とする必要があります。

これが「二次元配列内の一次元配列の中の値を操作する」ということです。列を追加するイメージです。

ではもっと具体的にGIF動画も交えてみていきましょう!

 

二次元配列内の一次元配列を丸々操作(追加・削除)する方法

unshift | 二次元配列の先頭に一次元配列を追加する

f:id:yukibnb:20200124140934g:plain

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 | 二次元配列の末尾に一次元配列を追加する

f:id:yukibnb:20200124141655g:plain

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 | 二次元配列の先頭の一次元配列を削除する

f:id:yukibnb:20200124142802g:plain

shiftを使用すると配列の先頭の要素を削除することができます。

二次元配列priceListの先頭の一次元配列["lemon","JPY100"]を削除しました。

var priceList = [
                  ["lemon","JPY100"],
                  ["orange","JPY150"],
                  ["peach","JPY200"]
                ];

//二次元配列の先頭の一次元配列を削除する
priceList.shift();

//ログ⇒[["orange","JPY150"],["peach","JPY200"]]
Logger.log(priceList);

 

pop | 二次元配列の末尾の一次元配列を削除する

f:id:yukibnb:20200124143207g:plain

popを使用すると配列の末尾の要素を削除することができます。

二次元配列priceListの末尾の一次元配列["peach","JPY200"]を削除しました。

var priceList = [
                  ["lemon","JPY100"],
                  ["orange","JPY150"],
                  ["peach","JPY200"]
                ];

//二次元配列の末尾の一次元配列を削除する
priceList.pop();

//ログ⇒[["lemon","JPY100"],["orange","JPY150"]]
Logger.log(priceList);

 

二次元配列内の一次元配列の中の値を操作(追加・削除)する方法

f:id:yukibnb:20200124150212p:plain

ではここからは二次元配列内の一次元配列の中の値を操作する方法を見ていきましょう。

ポイントさえ押さえれば方法はほとんど同じです。

二次元配列の中の一次元配列はpriceList[インデックス番号]で指定できます。

例えば["orange","JPY150"]を指定したい場合、priceList[1]と書けばOKです。

そして["orange","JPY150"]の先頭に値を追加したい場合、priceList[1].unshift(値)と書きます。

インデックス番号がポイントと覚えてください。

 

unshift | 二次元配列内の一次元配列の先頭に要素を追加する

f:id:yukibnb:20200124151653g:plain

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 | 二次元配列内の一次元配列の末尾に要素を追加する

f:id:yukibnb:20200124145742g:plain

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 | 二次元配列内の一次元配列の先頭の要素を削除する

f:id:yukibnb:20200124152124g:plain

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 | 二次元配列内の一次元配列の末尾の要素を削除する

f:id:yukibnb:20200124152529g:plain

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文などのループを組み合わせると、スプレッドシートを高速で操作できるようになります。

本記事が二次元配列操作の参考になれば幸いです。