雪ん子パースペクティヴ

読むとちょっとタメになるエントリー。コメントあると嬉しいです。

【Google Apps Script】多次元配列を操作する。要素の値を確認し、追加するまで。

1次元配列はOK。2次元もOK。3次元...?

 

はろー、yukiです。

 

Google Apps Script(以降、GASと略す)で配列を操作する機会がありました。

使ったとしても2次元配列までとは思います。

でも、例えば、2次元配列の要素に配列を加えた時、3次元配列が作成されます。

そういった複雑なことは決して起こらないとは限らないので、3次元配列までの値の出力、追加をまとめました。

 

内容を整理したコードは下記になります。

   
////////////////////////////
///                      ///
///   多次元配列の操作   ///
///                      ///
////////////////////////////

// 対象となる配列
// testAry = [[], [], [[],[]]];

// ex.) testAry = [[i], [j], [[k], [l]]];
// i -> Name: "a", "b", "c", "d",...
// j -> Label: "front", "back"
// k -> Num: 1, 2, 3, 4,...
// l -> Num: 9, 8, 7, 6,...

// テストデータ
  var testAry = [["a", "b", "c", "d"], ["front", "back"], [[1, 2, 3, 4],[9, 8, 7, 6]]];


// 値の出力を確認
function checkValue() {

  Logger.log("** 1次元 **");
  Logger.log(testAry[0]); // -> "a", "b", "c", "d"

  Logger.log("** 2次元 **");
  Logger.log(testAry[0][0]); // -> "a"
  Logger.log(testAry[1][0]); // -> "front"
  Logger.log(testAry[2][0]); // -> 1, 2, 3, 4
 
  Logger.log("** 3次元 **");
  Logger.log(testAry[2][0][0]); // -> 1
  Logger.log(testAry[2][1][0]); // -> 9

}


// 値の追加を確認
function addValue() {

  // 末尾に"e"を追加
  testAry[0][4] = "e";
  Logger.log(testAry[0][4]);

  // spliceメソッドを使用し、中間に"middle"を追加
//  testAry[1][1] = "middle"; // -> "back"が上書きされる
  testAry[1].splice(1, 0, "middle");
  Logger.log(testAry[1]); // -> "front", "middle", "back"
  Logger.log(testAry[1][1]); // -> "middle"

  // spliceメソッドを使用し、先頭に"0"を追加
  testAry[2][0].splice(0, 0, 0);
  Logger.log(testAry[2][0]); // -> 0,1,2,3,4
  Logger.log(testAry[2][0][0]); // ->0

  // [JavaScript]
  // array.slice(開始位置, 取り除く要素, 追加する要素)
  // ※取り除く要素が0の時は、どの要素も取り除かれない。
  // https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

  // pushメソッドを使用し、末尾に"5"を追加
  testAry[2][1].push(5);
  Logger.log(testAry[2][1]); // -> 9,8,7,6,5
  Logger.log(testAry[2][1][4]); // ->5

  // [JavaScript]
  // array.push(配列の末尾に追加する要素)
  // https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/push

}

 

 

上記のサンプルコードを使い、理解が定着するまで、配列の順番[#]を入れ替えて試してみてください。

 

GASはJavaScriptがもとになっています。各メソッドの詳細はリンク先を読んでみてください。

 

 

以上。

 

 

Googleアドセンス