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

javaScript内置对象编程练习,谁能帮我分析一下其他同学的代码,看不懂,唉。

  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
 
var arr=scoreStr.split(";");
var sum=0;
for(var i=0;i<arr.length;i++){
sum+=parseInt(arr[i].substr(3));
}
var av=Math.floor(sum/arr.length);
document.write("--班级总分为:"+av);

提问者:慕粉1461748147 2016-07-28 16:42

个回答

  • 蜗v牛
    2016-07-28 17:37:09
    已采纳

      var arr=scoreStr.split(";");

      //把字符串scoreStr按照‘;’分割符号进行分割,分割后的数组放到变量arr中,得到

      //[[小明:87],[小花:81],[小红:97],[小天:76],[小张:74],[小小:94],[小西:90],[小伍:76],[小迪:64],[小曼:76]]

      var sum=0;

      for(var i=0;i<arr.length;i++){  //循环遍历输入arr

          sum+=parseInt(arr[i].substr(3));  

     //从数组中的每一个字符串提取索引3位置及后面的内容,并将提取的内容转换成数字,并进行加赋值

     //arr[0]=[小明:87],经过substr(3)提取出87,在经过parseInt()转换成整数的87

       }

    var av=Math.floor(sum/arr.length);

    //求出平均值

    document.write("--班级总分为:"+av);


  • jkc2017
    2016-07-28 17:41:10

    这个代码应该是求平均分吧。。PS(我也是新手,大概解释一下,如果有不恰当的,请指出)

    首先split把scoreStr字符串按照;号分割成一个数组,并让arr指向这个数组,因此arr也代表的是这个数组;用for循环遍历这个数组,arr[i].substr(3)表示删除数组中每个字符串的前3位啊,就得到分数的字符串,再用parseInt强制转换成数字累加得到总的成绩;最后调用全局函数求得平均分。