【GAS】二次元配列を一次元配列に変換する(flatメソッド)

GASflat

前回、Google Apps Script(GAS)における一次元配列から二次元配列に変換する方法をご紹介しました。

この記事では二次元配列を一次元配列に変換する方法をご紹介します。

スプレッドシートから取得したデータは二次元配列

前提として、スプレッドシートから取得したデータの形式は二次元配列です。このままでも処理できますが、一次元配列に変換したほうが操作しやすい場面もあり、二次元配列と一次元配列を相互に変換する手段を持っておくとが便利です。

A2:D3のデータを取得
  let ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let range = ss.getRange('A2:D3');

  let array = range.getValues();
  console.log(array); //[ [ 'ハンバーグ', 1000, 12, 12000 ], [ 'スープ', 500, 18, 9000 ] ]
A2:D2のデータを取得
  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における二次元配列から一次元配列に変換する方法をシーン別でご紹介しました。

この記事を書いた人

てつお
広告代理店出身、事業会社でWebマーケティングや開発の仕事をしている26歳です。プロフィール詳細はこちら
■Google広告認定資格|Google アナリティクス個人認定資格(GAIQ)|TOEIC920点