【问题标题】:Create Chart using $getJSON and ChartJS使用 $getJSON 和 ChartJS 创建图表
【发布时间】:2021-09-24 10:00:38
【问题描述】:

我需要使用 ChartJS 和 JSON 文件创建一个图表。格式如下,我希望将数据推送到一个数组中,其中 x 轴标有车站,y 轴显示到达。所以本质上,我正在为一个站点创建一个以秒为单位的到达的条形图。我了解如何呈现图表,我的问题是将数据推送到图表的数组中。

[
{"group":"23","delays":[
{"Station":"a","Arrival":"3","Departure":0},{"Station":"b","Arrival":-179,"Departure":0},{"Station":"c","Arrival":-156,"Departure":0}
]},
{"group":"23","delays":[
{"Station":"d","Arrival":"no information","Departure":79},{"Station":"f","Arrival":0,"Departure":0},{"Station":"g","Arrival":68,"Departure":68}
]}
] 

Json 摘录在我尝试用来推送它的循环的上方和下方,但是我得到了一个未定义的错误。

var dataPoints = [];


function addData(data) {
    for (var i = 0; i < data.length; i++) {
        for (var j = 0; j < i; j++) {
            dataPoints.push({
                x: data[i].delays[j].Station,
                y: data[i].delays[j].Arrival
            });
        }
    }

    console.log(dataPoints)
    chart.render();

}

$.getJSON(url, addData);

这是错误:

test.html:33 Uncaught TypeError: Cannot read property 'Station' of undefined
    at Object.addData [as success] (test.html:33)
    at j (jquery-1.11.1.min.js:2)
    at Object.fireWith [as resolveWith] (jquery-1.11.1.min.js:2)
    at x (jquery-1.11.1.min.js:4)
    at XMLHttpRequest.b (jquery-1.11.1.min.js:4)

【问题讨论】:

  • dataPoints 从未定义
  • @johnSmith 你这是什么意思?我在上面定义为一个空数组?
  • 没关系,那是在您的代码格式化编辑之前

标签: javascript jquery arrays json chart.js


【解决方案1】:

一个问题是你没有根据延迟的长度而是根据数据的长度迭代j,如果你调整它应该可以工作。喜欢:

for (var i = 0; i < data.length; i++) {
    for (var j = 0; j < data[i].delays.length; j++) {
        ...
    }
}

【讨论】:

  • 非常感谢!它有效,数组已填充。但是图表不会显示任何列,但我必须以某种方式弄清楚。
猜你喜欢
  • 2017-08-04
  • 2019-03-13
  • 2021-04-28
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-30
相关资源
最近更新 更多