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 公式アカウントです。
漫画(まんが)・コミックの新刊情報を毎日配信中!
コーヒーブレイク
対話不能の異生物・ガウナ(奇居子)に太陽系を破壊されて千年。人類の繁殖と生産を維持しながら宇宙を旅する、巨大なる播種船・シドニア。シドニアの最下層で育った青年・谷風長道(たにかぜ・ながて)は、衛人(モリト)と呼ばれる大型兵器の訓練生となり、歴史的名機・継衛(ツグモリ)への搭乗を許される。長道の命を賭(と)した戦いが今ここに幕を開ける!
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?