为了账号安全,请及时绑定邮箱和手机立即绑定

var a=parseInt(shuju1[i].substr(3,2));这样为什么不行?不也是提取数组中从3开始的2个字符吗? var index = shuju1[i].indexOf(":"); var a=parseInt(shuju1[i].substr(index+1,2));和上面的表达一样,为什么这个可以,上面的不行呢?

var shuju="小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

var shuju1=shuju.split(";");

var sum=0;

var av=0;

for(var i=0;i<shuju1.length;i++){

// var a=parseInt(shuju1[i].substr(3,2));

var index = shuju1[i].indexOf(":");

var a=parseInt(shuju1[i].substr(index+1,2));

sum += a;

}

av=sum/shuju1.length;

document.write(sum);


正在回答

2 回答

var shuju="小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

错误:上面你的代码写错了。里面多了几个空格,导致substr(3,2)中的3起始位置不对。

如果删除多余的空格,就对了。也就是说你理解的2种方法从根本上讲,都是对的,只是你个人的原因而导致了错误。

1 回复 有任何疑惑可以回复我~

parseInt用错了

0 回复 有任何疑惑可以回复我~
#1

imooc客服

parseInt没有用错,也没有写错。 将原来的长字符串切割后,得到的还是由字符组成的数组,使用parseInt是为了将字符串转成数字,方便后面的其它计算。
2018-06-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

var a=parseInt(shuju1[i].substr(3,2));这样为什么不行?不也是提取数组中从3开始的2个字符吗? var index = shuju1[i].indexOf(":"); var a=parseInt(shuju1[i].substr(index+1,2));和上面的表达一样,为什么这个可以,上面的不行呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信