var sorceStr = "小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"; var arr = sorceStr.split(';');//按 ; 符号进行数组分割 var sum = 0; var av= 0; for( var i =0;i<arr.length;i++ ){ var index = arr[i].indexOf(':'); //根据 : 符号确定数字开始的位置 sum += parseInt( arr[i].substr(index+1,2) ); // parseInt() 字符串类型转成整型 } av = sum/arr.length; av = Math.floor(av); // 取整 中的for里面的求解
1 回答
super_mb
TA贡献101条经验 获得超107个赞
for循环的内容不理解么?我觉得注释的挺好的啊。
数组arr的每个元素都是 "名字:分数" 这样的字符串,for循环每次处理一个这样的字符串。
indexOf()方法可以找到所传参数字符在字符串中的索引,即 arr[i][index] == ":" 为true,这个不难理解吧。
然后 substr(a, b) 方法可以从字符串索引为a处开始,取b个字符组成一个新的字符串并返回,在这个循环中,就是从 ":" 后一位开始截取两位字符,很明显截取的字符串就是分数。
通过parseInt()方法可以将分数字符串转换为整数,所以每次的分数相加后得到了总分 sum。
最后通过sum/arr.length就得到了平均分。
添加回答
举报
0/150
提交
取消