このような二次元配列があって
[["あいうえお", "かきくけこ"],["さしすせそ", "たちつてと"],["なにぬねの", "はひふへほ"]]
このように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