我在做网页上的图表。由于我使用Django,所以必须将数据的JSON传递到中,然后解析JSON来获取数据。
问题是控制台上写着:
未定义的TypeError:无法读取未定义的属性'0‘(…)
function drawChart() {
var google_chart_json = {"MyKey": [[[2016, 11, 2], 156.0], [[2016, 11, 3], 69.0], [[2016, 11, 4], 126.0], [[2016, 11, 5], 67.0], [[2016, 11, 6], 97.0], [[2016, 11, 7], 193.0], [[2016, 11, 8], 96.0], [[2016, 11, 9], 64.0], [[2016, 11, 10], 117.0], [[2016, 11, 11], 190.0]]};
$.each(google_chart_json, function (key, val) {
console.log(key);
$.each(val,function (scan) {
var year = scan[0][0]
console.log(year)
})
});
....
正如你所看到的,var year
应该是2016年,等等。
问题出在哪里?
发布于 2016-11-19 10:37:36
传入$.each
回调的第一个参数是键或数组索引。第二个参数是值。这一点在你的外部$.each
中是正确的,但不是内在的。
固定:
function drawChart() {
var google_chart_json = {
"MyKey": [
[[2016, 11, 2], 156.0],
[[2016, 11, 3], 69.0],
[[2016, 11, 4], 126.0],
[[2016, 11, 5], 67.0],
[[2016, 11, 6], 97.0],
[[2016, 11, 7], 193.0],
[[2016, 11, 8], 96.0],
[[2016, 11, 9], 64.0],
[[2016, 11, 10], 117.0],
[[2016, 11, 11], 190.0]
]
};
$.each(google_chart_json, function(key, val) {
console.log(key);
$.each(val, function(idx, scan) {
var year = scan[0][0]
console.log(year)
})
});
}
drawChart();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
发布于 2016-11-19 10:37:53
问题是最内部循环中的scan
只是键值(或者在本例中是数组索引0-9),而不是完整的数组。
$.each(google_chart_json, function (key, val) {
console.log(key);
$.each(val,function (scan) {
console.log(google_chart_json[key][scan][0][0])
})
});
https://stackoverflow.com/questions/40691800
复制相似问题