TypeError:json [i]未定义

时间:2011-05-18 21:53:41

标签: javascript ajax dojo

这个错误的原因是什么?

  <script type="text/javascript">
        dojo.xhrGet({
            url: "homeChart.php",
            handleAs: "json",
            load: function(json) {
                $m = [];
                for (var i = 1; i < 10; i++) {
                    $m.push(parseFloat(json[i]["valor" + i]));
                    alert(i);    
                }
                dojo.addOnLoad(makeCharts);
            }
        });
    </script>

homeChart.php的输出完全是:[200]

感谢

2 个答案:

答案 0 :(得分:1)

json是[200],它在索引0中只有一个东西(200)。

for循环使用索引1到10 - 没有为此数组定义那些索引。

答案 1 :(得分:0)

你在做:     parseFloat(json [i] [“valor”+ i]

即使i在范围内,json [0] [“valor0”]也将是未定义的,母鸡parseFloat将返回NaN

如果你的json是一个浮点数组,你应该尝试像

这样的东西
for (var i = 0; i < json.length; i++) {
    $m.push(json[i]);
}

希望这会有所帮助。