Как я могу реорганизовать эти данные для создания таблицы из этого вложенного массива (а также для учета отсутствующих данных)? - PullRequest
0 голосов
/ 22 марта 2020

У меня есть следующий объект (обратите внимание на закомментированные части, которые представляют данные, которые могут отсутствовать за этот год):

  var data = {
  "symbol": "AAPL",
  "financials": [{
      "date": "2019-09-28",
      "Revenue": "2.60174e+11",
      "EPS": "11.97",
    },
    {
      "date": "2018-09-29",
      "Revenue": "2.65595e+11",
      "EPS": "12.01",
    },
    {
      "date": "2017-09-30",
     // "Revenue": "2.29234e+11",
     // "EPS": "9.27",
    },
    {
      "date": "2016-09-24",
      "Revenue": "2.15639e+11",
   //   "EPS": "8.35",
    },
    {
      "date": "2015-09-26",
      "Revenue": "2.33715e+11",
      "EPS": "9.28",
    },
    {
      "date": "2014-09-27",
      "Revenue": "1.82795e+11",
      "EPS": "6.49",
    },
    {
      "date": "2013-09-28",
      "Revenue": "1.7091e+11",
      "EPS": "40.03",
    },
    {
      "date": "2012-09-29",
      "Revenue": "1.56508e+11",
      "EPS": "44.64",
    },
    {
      "date": "2011-09-24",
      "Revenue": "1.08249e+11",
      "EPS": "28.05",
    },
    {
      "date": "2010-09-25",
      "Revenue": "65225000000.0",
      "EPS": "15.41",
    },
    {
      "date": "2009-09-26",
      "Revenue": "42905000000.0",
      "EPS": "1.317",
    }
  ]
}

Как организовать это по строкам, чтобы окончательный вывод будет в виде:

["symbol", "financials.date", "financials.Revenue", "financials.EPS"]
["AAPL", "2019-09-28", "2.60174e+11", "11.97"]
["", "2018-09-29", "2.65595e+11", "12.01"]
["", "2017-09-30", "", ""]
["", "2016-09-24", "2.15639e+11", ]
["", "2015-09-26", "2.33715e+11", "9.28"]
["", "2014-09-27", "1.82795e+11", "6.49"]
["", "2013-09-28", "1.7091e+11", "40.03"]
["", "2012-09-29", "1.56508e+11", "44.64"]
["", "2011-09-24", "1.08249e+11", "28.05"]
["", "2010-09-25", "65225000000.0", "15.41"]
["", "2009-09-26", "42905000000.0", "1.317"]

например, я хочу, чтобы каждый элемент выстраивался в линию под соответствующим заголовком. Пока у меня есть:

var d = flatten(data);
  var header = Object.keys(d);
  console.log(header);

  for (var key in d) {
    var rows = [];
    for (var i = 0; i < d[key].length; i++) {
      if (Array.isArray(d[key])) {
        rows.push(d[key][i]);
      } else {
        rows.push(d[key]);
      }
    }
    console.log(rows);
  }

Полный JS Бин можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...