猿问

按照参考答案敲的代码,为什么不能输出正确的结果?谢谢街道!

  1. 按照参考答案敲出的代码,得出下图的的结果,无法正常显示:

  2. 下图是我将参考答案源代码中var arr=sorceStr.split(':');这句注释掉,自己写了一遍var arr=sorceStr.split(':')。结果仍然是图一的结果,一样的代码为什么会这种情况,谢谢。

  3. http://img.mukewang.com/5732731500010bf505440255.jpg

我们刘长瑞
浏览 2001回答 3
3回答

陈士愚

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

按你描述代码应该是没问题;因为前面一句是可以的你照着些却有问题。个人猜测是分号有问题,一个是英文的一个是中文的。你可以从上面小明:87小花:81...也就是sorceStr的值里去复制个分号放在你自己写的那句代码里看看。祝好运。
随时随地看视频慕课网APP
我要回答