【GAS】一次元配列の結合で新たな配列を作る/配列要素を結合する
この記事ではGoogle Apps Script(GAS)で一次元配列を使った下記4つの結合シーンをご紹介しています。
- 2つの一次元配列を結合して新たな一次元配列をつくる(concatメソッド)
- 2つの一次元配列を結合して二次元配列をつくる(pushメソッド)
- 1つの一次元配列内の要素同士を結合して1つの文字列をつくる(joinメソッド)
- 2つの一次元配列の要素同士を結合する(ループ処理で要素同士を結合)
二次元配列の結合については下記の記事で解説しています。
2つの一次元配列を結合して一次元配列をつくる
一番シンプルで使う頻度が多い配列の結合方法は、一次元配列同士を連結して新たな一次元配列をつくるパターンでしょう。concatメソッドを利用することで元の配列を縦結合して新たな配列をつくることができます。
Array1.concat(Array2 [, Array3] )
let array1 = ['apple', 'orange', 'grape'];
let array2 = ['candy', 'cookie'];
let array3 = array1.concat(array2);
console.log(array3); // [ 'apple', 'orange', 'grape', 'candy', 'cookie' ]
3つ以上の配列の結合する場合
3つ以上の配列もカンマ(,)で区切ることで、concatメソッドを使うことで同様に結合できます。
let array1 = ['apple', 'orange', 'grape'];
let array2 = ['candy', 'cookie'];
let array3 = ['tomato', 'cabbage'];
let array4 = array1.concat(array2,array3);
console.log(array4); //[ 'apple', 'orange', 'grape', 'candy', 'cookie', 'tomato', 'cabbage' ]
2つの一次元配列を結合して二次元配列をつくる
配列同士を配列のまま結合して二次元配列を作成する方法です。いくつか手法がありますが、空配列を先に作っておき、pushメソッドで結合する方法が最もシンプルで簡単かと思います。
[Array1, Array2 [, Array3]]
let array1 = ['apple', 'orange', 'grape'];
let array2 = ['candy', 'cookie'];
let array3 = [array1, array2];
console.log(array3); //[ [ 'apple', 'orange', 'grape' ], [ 'candy', 'cookie' ] ]
concatメソッド同様に、カンマ(,)で区切ることで3つ以上の配列を結合することも可能です。
1つの一次元配列内の要素同士を結合して1つの文字列をつくる
配列内の要素を結合するにはjoinメソッドを使います。
Array.join([param])
- param(任意):結合文字
let array = ['apple', 'orange', 'grape'];
console.log(array.join()); //apple,orange,grape
joinメソッドの引数として結合文字を挿入できます。
let array = ['apple', 'orange', 'grape'];
console.log(array.join(' and ')); // apple and orange and grape
console.log(array.join('-')); // apple-orange-grape
要素に数値等の文字列以外のデータ型要素が存在してもjoinメソッドは適応できますが、結合後はもちろん文字列が返ります。
let array = ['apple', 0, 'orange', 1, 'grape'];
console.log(array.join()); //apple,0,orange,1,grape
「+」記号を用いる際、文字列の変数通しの場合は結合を表しますが、数字同士だと「足し算」を表します。数字を含め値同士の結合をしたい場合は、どの順序で結合するかによって挙動が異なるので注意しましょう。
let text1 = 'リンゴが';
let text2 = 1;
let text3 = 2;
let text4 = '個あります';
console.log(text1+(text2+text3)+text4); // リンゴが3個あります
console.log(text1+text2+text3+text4); // リンゴが12個あります
2つの一次元配列の要素同士を結合する
同じ要素数を持つ2つ以上の配列の要素同士を結合したい場合もあります。特定メソッドはないので、繰り返し文で1行ずつ要素同士を結合処理することでも実行します。
let array1 = ['apple', 'orange', 'grape'];
let array2 = ['candy', 'cookie', 'chocolate'];
let array3 = [];
for(let i=0; i <array1.length; i++){
arrayC.push(array1[i] + array2[i]);
}
console.log(array3); //[ 'applecandy', 'orangecookie', 'grapechocolate' ]
まとめ
GASで配列の結合する方法をご紹介しました。
- 2つの一次元配列を結合して新たな一次元配列をつくる(concatメソッド)
- 2つの一次元配列を結合して二次元配列をつくる(pushメソッド)
- 1つの一次元配列内の要素同士を結合して1つの文字列をつくる(joinメソッド)
- 2つの一次元配列の要素同士を結合する(ループ処理で要素同士を結合)