javascript - JS/JQuery : Can't access array elements in json

标签 javascript jquery arrays json

我正在我的页面上处理图表。由于我使用 Django,因此我必须将 JSON 数据传递到 HTML 中,然后将 JSON 解析为获取数据。

问题是控制台说:

Uncaught TypeError: Cannot read property '0' of undefined(…)

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 年等。

问题出在哪里?

最佳答案

传入 $.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>

关于javascript - JS/JQuery : Can't access array elements in json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40691800/

相关文章:

mysql - 如果是另一个查询的结果,则查询选择 Id

ios - 检查 NSArray 中是否存在唯一对象

javascript - $_GET[id] 在 div id 中不起作用

javascript - 引用导入的 es6 类的正确 JSDOC 语法是什么?

Javascript onbeforeunload 打开 window.open() 弹出窗口

javascript - ext js改变面板的颜色为渐变

jquery - Tastypie 不发送 cookie

jquery - 可以合并多个输入,每个输入都使用不同来源的 typeahead.js 吗?

javascript - 使用 JavaScript 发推文

java - 如何在Java中创建通用数组?