为什么Chart.js forEach未定义

-1 javascript ajax json chart.js

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

Uncaught 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));
});
Run Code Online (Sandbox Code Playgroud)

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

Que*_*tin 5

您误读了错误消息。

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

在这种情况下,是什么results["packets"]

而且它是未定义的,因为您要从link中获取的JSON 没有您认为的结构。您需要查看results(例如,使用console.log(results)并查看其实际结构)。