【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がもとになっています。各メソッドの詳細はリンク先を読んでみてください。
以上。