このような二次元配列があって
[["あいうえお", "かきくけこ"],["さしすせそ", "たちつてと"],["なにぬねの", "はひふへほ"]]
このように1次元配列にまとめたい
[あいうえお, かきくけこ, さしすせそ, たちつてと, なにぬねの, はひふへほ]
Array.prototype.push.applyを使う場合は
コード.gsfunction array_concat(){
var array = [["あいうえお", "かきくけこ"],["さしすせそ", "たちつてと"],["なにぬねの", "はひふへほ"]];
for(var i = 1; i < array.length; i++){
array[0] = array[0].concat(array[i]);
}
Logger.log(array[0]);
}
| 意訳この機能がやること 2次元配列を用意して その中の一次元配列の数だけ以下を繰り返す 0番目の一次元配列に1番目以降の一次元配列をつなげて 出来上がったarray[0]をログに出す |
実行結果
その2
このような配列があって
var array1 = [{en: "english"}, {ja: "japanese"}];
var array2 = [{fr: "french"}, {it: "italian"}];
var array3 = [{ko: "korean"}, {de: "Deutschland"}];
このようにひとつにまとめたい
[[{"en":"english"},{"ja":"japanese"},{"fr":"french"},{"it":"italian"},{"ko":"korean"},{"de":"Deutschland"}]
以下のコードと似ていますが
Array.prototype.push.applyで配列を結合する
array4がマージ前のarray1を返すところが異なります
コード.gs
function array_concat(){
var array1 = [{en: "english"}, {ja: "japanese"}];
var array2 = [{fr: "french"}, {it: "italian"}];
var array3 = [{ko: "korean"}, {de: "Deutschland"}];
var array4 = array1;
var array1 = array1.concat(array2)
.concat(array3);
Logger.log([JSON.stringify(array1), JSON.stringify(array2), JSON.stringify(array3), JSON.stringify(array4)]);
}
|
意訳この機能がやること 1つめの配列 2つめの配列 3つめの配列 array4にarray1を入れる array1にarray2を追加 さらにarray3を追加 それぞれをログに出す |
補足
実行結果を見るとこのようなログが出ます
array1,2,3,4を分けてみてみると
array4はマージ前のarray1の配列を返している
array1
[[{"en":"english"},{"ja":"japanese"},{"fr":"french"},{"it":"italian"},{"ko":"korean"},{"de":"Deutschland"}],
array2
[{"fr":"french"},{"it":"italian"}],
array3
[{"ko":"korean"},{"de":"Deutschland"}],
array4
[{"en":"english"},{"ja":"japanese"}]]
参考
Array.prototype.concat()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
Array.prototype.concat()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/concat

