格式化从 API 获取的数据以创建图表

Formatting data got from API to create a chart

有!我是网络开发的新手,所以我需要一些帮助!

我正在尝试创建一个应用程序,您可以在其中选择股票名称并显示其价格变化图表。我正在使用 this api and ApexCharts 创建图表。

问题是图表似乎没有包含我的数据,所以图表看起来是空的。我正在做的是:

从 API 获取数据后,看起来像这样:

"data": [
        {
            "open": 129.8,
            "high": 133.04,
            "low": 129.47,
            "close": 132.995,
            "volume": 106686703.0,
            "adj_high": 133.04,
            "adj_low": 129.47,
            "adj_close": 132.995,
            "adj_open": 129.8,
            "adj_volume": 106686703.0,
            "split_factor": 1.0,
            "dividend": 0.0,
            "symbol": "AAPL",
            "exchange": "XNAS",
            "date": "2021-04-09T00:00:00+0000"
            },
            [...]
    ]

然后我尝试创建一个对象数组(我只需要日期和 O、H、L、C 值),如下所示:

series: [{
              data: [{
                  x: new Date(1538778600000),
                  y: [6629.81, 6650.5, 6623.04, 6633.33]
                },
                {
                  x: new Date(1538780400000),
                  y: [6632.01, 6643.59, 6620, 6630.11]
                }
              ]
            }],

我为此实现的功能是:

function formatData(stockData, symbol) {
      options.title.text = symbol;
      let solution = [];
      var apiData = stockData.data;
      for (var entry in apiData) {
        let obj = {};
        obj.x = new Date(entry.date); //the x axis will be containing the date
        let price = [];
        price.push(entry.open);
        price.push(entry.high);
        price.push(entry.low);
        price.push(entry.close);
        obj.y = price; //the y axis will be containing the prices
        solution.push(obj);
      }
      options.series[0].data = solution.sort((a, b) => a.x - b.x); //put in series what we obtained
    }

格式化数据后得到的结果:

options.series:  
        {data: Array(10)}
        data: Array(10)
        0:
        x: Invalid Date
        [[Prototype]]: Object
        y: Array(4)
        0: undefined
        1: undefined
        2: undefined
        3: undefined

为什么我得到 'Invalid date' 和 'undefined'?当我试图在控制台中简单地显示日期时,它工作正常,但在我创建的数组中它说无效...这就是为什么我的图表是空的并且不显示任何值的原因。

感谢大家的帮助!

我觉得formatData功能有问题。改变这一行 for (var entry in apiData),将 in 替换为 of

for (var entry of apiData) {

或使用forEach遍历数组。