【GAS】二次元配列を一次元配列に変換する(flatメソッド)
前回、Google Apps Script(GAS)における一次元配列から二次元配列に変換する方法をご紹介しました。
この記事では二次元配列を一次元配列に変換する方法をご紹介します。
スプレッドシートから取得したデータは二次元配列
前提として、スプレッドシートから取得したデータの形式は二次元配列です。このままでも処理できますが、一次元配列に変換したほうが操作しやすい場面もあり、二次元配列と一次元配列を相互に変換する手段を持っておくとが便利です。
let ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let range = ss.getRange('A2:D3');
let array = range.getValues();
console.log(array); //[ [ 'ハンバーグ', 1000, 12, 12000 ], [ 'スープ', 500, 18, 9000 ] ]
let ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let range = ss.getRange('A2:D2');
//1行の取得でも二次元配列となる
let array = range.getValues();
console.log(array); //[ [ 'ハンバーグ', 1000, 12, 12000 ] ]
二次元配列を一次元配列に変換する方法
一次元配列はいくつかのパターンでご紹介しましたが、二次元配列を一次元配列に変換する方法はとてもシンプルで対象の配列に対して「flatメソッド」を使います。
flatメソッド
Array.flat([depth])
- depth(任意):何階層まで展開するか指定する数値、指定がなければ1
console.log(array); //[ [ 'ハンバーグ', 1000, 12, 12000 ], [ 'スープ', 500, 18, 9000 ] ]
console.log(array.flat()); //[ 'ハンバーグ', 1000, 12, 12000, 'スープ', 500, 18, 9000 ]
今回は二次元配列から一次元配列への変換なので深入りしませんが、flatメソッドを使えば、例えば三次以上の配列だったとしても一発で一次元配列に変換できます。
let array = [ [ 'ハンバーグ', 1000, 12, 12000 ], [[ 'スープ', 500, 18, 9000 ]]]
console.log(array.flat(2)); //[ 'ハンバーグ', 1000, 12, 12000, 'スープ', 500, 18, 9000 ]
console.log(array.flat()); // [ 'ハンバーグ', 1000, 12, 12000, [ 'スープ', 500, 18, 9000 ] ]
まとめ
GASにおける二次元配列から一次元配列に変換する方法をシーン別でご紹介しました。
おすすめ記事