2016-11-19 5 views
0

私は自分のページのチャートを使っています。私はジャンゴで動作するので、私はHTMLJSONデータのを通過した後、データを取得するためにJSONを解析する必要があります。問題は、コンソールが言うことですJS/JQuery: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であるべきなど

どこに問題がありますか?

答えて

1

$.eachコールバックに渡される最初のパラメータは、キーまたは配列のインデックスです。 2番目のパラメータは値です。あなたは外側の$.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>

1

問題はあなたの最も内側のループ内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]) 
    }) 
}); 
関連する問題