按照参考答案敲出的代码,得出下图的的结果,无法正常显示:下图是我将参考答案源代码中var arr=sorceStr.split(':');这句注释掉,自己写了一遍var arr=sorceStr.split(':')。结果仍然是图一的结果,一样的代码为什么会这种情况,谢谢。
3 回答
陈士愚
TA贡献44条经验 获得超44个赞
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.
zbb_mooc
TA贡献9条经验 获得超1个赞
按你描述代码应该是没问题;因为前面一句是可以的你照着些却有问题。个人猜测是分号有问题,一个是英文的一个是中文的。你可以从上面小明:87小花:81...也就是sorceStr的值里去复制个分号放在你自己写的那句代码里看看。祝好运。
添加回答
举报
0/150
提交
取消