GAS|スプレッドシートのシート内から取得した二次元配列の行データを連想配列(オブジェクト)に変換する|splice|map|Javascript|Google Apps Script|開発裏話

マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。

この「コミックス販売日情報」は、スプレッドシートで作ったものです。

Google ドライブ内に保存しているスプレッドシートのシート内から取得した二次元配列の行データを、連想配列(オブジェクト)に変換して扱いたいことがあります。例えば、JSON データを生成したい場合などです。

上記のように、シート内の 1 行目に「キー」が存在することを前提に、以下のように対応します。

/**
 * Convert row to an Object.
 * 
 * @param values — a two-dimensional array of values
 * @return Object[] — an array of objects
 */
function convertRowToObject(values) {
  // get keys
  var keys = values.splice(0, 1)[0];
  
  // convert row to object
  return values.map(function(row) {
    var object = {};
    row.map(function(column, index) {
      object[keys[index]] = column;
    });
    return object;
  });
}

引数であるデータ「values — a two-dimensional array of values」は、以下によってシート内から取得したものです。

マンガポスト日本版

マンガポスト日本版の Twitter 公式アカウントです。
漫画(まんが)・コミックの新刊情報を毎日配信中!

コーヒーブレイク

対話不能の異生物・ガウナ(奇居子)に太陽系を破壊されて千年。人類の繁殖と生産を維持しながら宇宙を旅する、巨大なる播種船・シドニア。シドニアの最下層で育った青年・谷風長道(たにかぜ・ながて)は、衛人(モリト)と呼ばれる大型兵器の訓練生となり、歴史的名機・継衛(ツグモリ)への搭乗を許される。長道の命を賭(と)した戦いが今ここに幕を開ける!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?