earthpg:GAS専門のプログラミングスクール

初心者必見!GASでの2次元配列の宣言から追加・検索・結合・ソートまで徹底解説

GASで2次元配列ってどうやって扱うんだろう?初めて見るから、宣言とか追加とかさっぱりで…
猫男
猫男
catman
catman
では、catmanが「GASの2次元配列」について詳しく教えてやろう!

GASで2次元配列の宣言方法

2次元配列は、配列の中に配列が入っている状態だ。まずは基本の宣言方法を見てみよう。

2次元配列の宣言

2次元配列を宣言する例を示すぞ。

 var array2D = [
  ["Apple", "Red"],
  ["Banana", "Yellow"],
  ["Grapes", "Purple"]
]; 

これはフルーツのリストで、各フルーツの名前と色が並んでいる。

空の2次元配列の宣言

まずは空の2次元配列を宣言することもできる。

 var emptyArray2D = []; 

二次元配列を最初は空の状態で宣言し、後からデータを追加していけるんだ。

GASで2次元配列にデータを追加

配列にデータを追加する方法を解説しよう。

データの追加方法

配列に新しい要素を追加する際のコードだ。

 emptyArray2D.push(["Orange", "Orange"]); 

これで、最初に宣言した空の2次元配列に値を追加できる。

この方法で2次元配列にデータが増やせるんだね!
猫男
猫男

GASで2次元配列を検索する

次はデータを検索する方法だ。

2次元配列から要素を検索する

特定の要素を探すコードはこちら。

 function findFruitColor(fruitsArray, fruitName) {
  for (var i = 0; i < fruitsArray.length; i++) {
    if (fruitsArray[i][0] === fruitName) {
      return fruitsArray[i][1];
    }
  }
  return "Not found";
}

var color = findFruitColor(array2D, "Banana");
// color は "Yellow" になる 

この関数は、指定した果物名に対応する色を返す。

2次元配列を1次元配列に変換する

ときには2次元配列を1次元配列に変えたくなることもある。

2次元から1次元の変換方法

2次元配列を1次元配列に変換するコード例だ。

 var flattenedArray = array2D.flat(); 
// flattenedArray は ["Apple", "Red", "Banana", "Yellow", "Grapes", "Purple"] になる 

.flat() メソッドを使うと、すべての要素を1次元にすることができる。

GASで2次元配列を結合する方法

2つの2次元配列を組み合わせて一つにしたいときもある。

配列の結合方法

合体させるには、このようにするんだ。

 var array1 = [["Kiwi", "Green"]];
var array2 = [["Mango", "Yellow"]];
var combinedArray = array1.concat(array2); 
// combinedArray は [["Kiwi", "Green"], ["Mango", "Yellow"]] になる 

.concat() を使うことで2つの配列を簡単に結合できるよ。

2つの配列がまとめられるって便利だね!
猫男
猫男

GASで2次元配列をソートする

要素を順番通りに並べ替えたいこともある。

2次元配列のソート方法

配列を条件でソートするコードを紹介しよう。

 array2D.sort(function(a, b) {
  if (a[0] < b[0]) return -1; if (a[0] > b[0]) return 1;
  return 0;
});
// これは名前をアルファベット順でソートする 

.sort() メソッドにカスタムのソート条件を指定することで、配列を自由に並べ替えられる。

わぁ、こんなにいろんな操作ができるんだ…!
猫男
猫男

練習問題

次の問題で、この記事で学んだ内容を確認してみよう。

  1. 空の2次元配列を宣言し、3つのフルーツとそれぞれの色を追加してみよう。
  2. 作成した配列から「Grapes」の色を検索してみよう。
  3. 1次元配列に変換して、全要素を一列にしてみよう。

解答と解説

これが解答だ。コードを使って確認してみよう。

 // 1. 空の2次元配列を宣言してデータを追加
var myFruits = [];
myFruits.push(["Apple", "Red"]);
myFruits.push(["Banana", "Yellow"]);
myFruits.push(["Grapes", "Purple"]);

// 2. Color of "Grapes"を検索
function findColor(fruitsArray, fruitName) {
  for (var i = 0; i < fruitsArray.length; i++) {
    if (fruitsArray[i][0] === fruitName) {
      return fruitsArray[i][1];
    }
  }
  return "Not found";
}

var grapesColor = findColor(myFruits, "Grapes");
// grapesColor は "Purple" になる

// 3. 1次元配列に変換
var flatFruits = myFruits.flat();
// flatFruits は ["Apple", "Red", "Banana", "Yellow", "Grapes", "Purple"] になる

まず空の2次元配列を宣言し、push()メソッドで値を追加している。findColor()関数は特定のフルーツの色を検索し、flat()メソッドで2次元配列を1次元配列に変換しているんだ。