Javascript for循环挂起

时间:2011-07-03 21:41:46

标签: javascript google-visualization

我正在尝试使用Google Charts API创建一个动态赋值的图表。以下代码应该采用一组值并使用它们填充图表,而是挂起并终止页面。我假设for循环没有结束 - 但我无法弄清楚出了什么问题。

有什么想法吗?

<script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  function drawChart(values) {
    var data = new google.visualization.DataTable();
    data.addColumn('number', 'Value');
    data.addRows(values.length);

    for(i=0; i <= values.length; i+3) {
        data.setValue(values[i], values[i+1], values[i+2]);
    }

    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, {width: 400, height: 240, legend: 'none', gridlineColor: '#fff', chartArea:{left:0,top:20}});
  }

  function stockFractal(){

  }

</script>

3 个答案:

答案 0 :(得分:2)

您没有在for循环中递增i变量;您希望i+=3不是i+3

for (i=0; i <= values.length; i+=3)

答案 1 :(得分:1)

问题(S)

你是对的,循环永远不会终止。

那是因为:

for(i=0; i <= values.length; i+3) {

不会增加i。它只是创建一个值,这是将3添加到i的结果...然后丢弃该值。

您的意思似乎也可能是<,而不是<=,因为数组索引从0转到values.length - 1

我还建议使用var


解决方案

写:

for (var i = 0; i < values.length; i = i + 3) {

或只是:

for (var i = 0; i < values.length; i += 3) {

答案 2 :(得分:0)

for(i=0; i <= values.length; i+3) {

真的应该读到:

for(i=0; i <= values.length; i=i+3) {