陈士愚
var scoreStr = "xm:87;xh:81;xt:76;xz:74;xx:94;xx2:90;xw:15;"; // 7个人的成绩
var arr = scoreStr.split(";"); // 数组里实际分割出8项
var sum = 0;
var av = 0;
for(var i=0;i<arr.length;i++){
var index = arr[i].indexOf(":");
var one = parseInt(arr[i].substr(index+1,2));
sum += one;
console.log(arr[i]);
}
av = sum/arr.length;
av = Math.floor(av);
console.log(arr.length);
// console.log(sum);
// console.log(av);测试代码如上,控制台结果如下:xm:87
xh:81
xt:76
xz:74
xx:94
xx2:90
xw:15
8
[Finished in 0.3s]你的scorestr格式没有写全,但是我猜测,最后仍然是有一个分号(我不知道你那个分割符是什么,我用的分好)结尾。这样调用split的时候,会造成最后一项是"",其数组长度比你预期的多了一个。这最后一项是NaN,加入到sum中,造成最后结果是NaN.