我需要使用ChartJS和JSON文件创建一个图表。下面给出了格式,我希望将数据推入一个数组中,其中x轴标记了Station,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 exerpt位于我试图用来推送它的循环之上和之下,但是我得到了一个未定义的错误。
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)
发布于 2021-07-15 14:01:32
一个问题是,你不是根据延迟的长度而是数据的长度来迭代j
,如果你调整它的话应该是有效的。像这样:
for (var i = 0; i < data.length; i++) {
for (var j = 0; j < data[i].delays.length; j++) {
...
}
}
https://stackoverflow.com/questions/68394751
复制