问答详情
源自:7-23 编程练习

for循环问题

 var sorcestr = "小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";


  var arr = scorestr.split(";")

  

  

  var sum=0;

  var av=0;

  for(var i=0;i<arr.length;i++)

  为什么这里不能i<=arr.length呢?

  {var arr1 = arr[i].indexOf(":");

      sum += parseInt(arr[i].substr(arr1+1,2))

      };

      av = sum/arr.length;

      av = Math.floor(av);


提问者:慕运维2603834 2015-10-19 17:03

个回答

  • sevencuijian
    2015-10-19 17:11:58
    已采纳

    因为数组的索引是从0开始的,比如有如下一个数组

    var arr = new array(1,2,3,4,5);
    arr.length   //数组长度输出为5;
    arr[5];   //相当于输出数组中的第6个数据,数组中总共才5个数据,没有第6个,所以要输出最后一个,应该是arr[arr.length-1]


  • Y_du
    2015-10-19 17:08:47

    数组的长度为10,而在实际运行过程中数组的第一个元素不是从1开始而是0.这样数组就会多出一个元素。所有在实际使用中会用i<arr.length而不是i <=arr.length