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

sum+=parseInt(scores)和sum+=parseInt(scores[i])的区别

<!DOCTYPE  HTML>

<html >

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>系好安全带,准备启航</title>


<script type="text/javascript">

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

 var arr  = scoreStr.split(';');

   var arr  = scoreStr.split(';');

            var sum = 0;

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

                var scores = arr[i].substr(arr[i].indexOf(':')+1);

                sum+=parseInt(scores);

            }

            var avvv=sum/arr.length;

            document.write(Math.floor(avvv));


</script>

</head>

<body>

</body>

</html>

  在这个代码中 如果sum+=parseInt(scores)就能输出正常结果,但是sum+=parseInt(score[i])就输出的是NAN 。这两句话有什么区别?

正在回答

2 回答

数组和字符串的区别


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

慕粉3683182 提问者

就是说scores是一个字符串了么?
2016-09-05 回复 有任何疑惑可以回复我~
#2

qq_堕落的撒旦_0 回复 慕粉3683182 提问者

对, substr 后 返回的是字符串
2016-09-05 回复 有任何疑惑可以回复我~

var scores = arr[i].substr(arr[i].indexOf(':')+1); 这个已经不是一个返回的不是一个数组对象,就是第i+1个arr中的对象以:位置+1截取的字符串,所以就是sum+=parseInt(scores)去写,而score[i]根本就是无效的,所以NAN。

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

慕粉3683182 提问者

意思就是scores 并不是一个数组,是一个字符串了么?
2016-09-05 回复 有任何疑惑可以回复我~
#2

ZeroChaos 回复 慕粉3683182 提问者

对的!它只是名字起的有点混淆了,你可以看看substr这个方法返回就是一个字符串的。
2016-09-05 回复 有任何疑惑可以回复我~
#3

慕粉3683182 提问者 回复 ZeroChaos

好的,谢谢。
2016-09-06 回复 有任何疑惑可以回复我~
#4

ZeroChaos 回复 慕粉3683182 提问者

没事儿哈,多交流!
2016-09-06 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

sum+=parseInt(scores)和sum+=parseInt(scores[i])的区别

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