为什么Chart.js forEach未定义

时间:2018-11-05 09:32:09

标签: javascript json ajax chart.js

我正在使用chart.js制作图表,但出现此错误:

  

未捕获的TypeError:无法读取未定义的属性'forEach'       在对象上。

错误来自的代码行是

var jsonData = $.ajax({
    url: 'link',
    dataType: 'json',
  }).done(function (results) {
    // Split timestamp and data into separate arrays
    var labels = [], data=[];
    results["packets"].forEach(function(packet) {
    labels.push(new Date(packet.timestamp).formatMMDDYYYY());
    data.push(parseFloat(packet.payloadString));
});

我看不出为什么这不起作用。

1 个答案:

答案 0 :(得分:4)

您误读了错误消息。

这并不是说forEach是未定义的,而是说您正在尝试从其他forEach 读取名为undefined 的属性。

在这种情况下,某些内容是results["packets"]

它是未定义的,因为您从link返回的JSON不具有您认为的结构。您需要查看results(例如,使用console.log(results)并查看其实际结构)。