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

求问各位大神,为什么显示不出来sum和平均数aver呢?

<!DOCTYPE  HTML>

<html >

<head>

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

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


<script type="text/javascript">

   var d=new Date();

   var y=d.getFullYear();

   var m=d.getMonth();

   var de=d.getDate();

   document.write(y+"年"+m+"月"+de+"日"+"<br/>")

  //通过javascript的日期对象来得到当前的日期,并输出。

 var score=[scoreStr.split(";")];

document.write(score+"<br/>");

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

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

var sum=0;

 var aver=0;

for(int i=0;i<score.length;i++){

  sum=sum+parseInt(score[i].slice(3,5));

 }

aver=sum/score.length;

document.write(sum);

document.write(parseInt(aver));

  //从数组中将成绩撮出来,然后求和取整,并输出。

</script>

</head>

<body>

</body>

</html>


正在回答

6 回答

存在问题:

(1)var score=[scoreStr.split(";")];document.write(score+"<br/>");应该放在var scoreStr="......";下 面,先定义后使用,否则获得不到scoreStr。

(2)var score=[scoreStr.split(";")];

        split()是将字符串分割为数组。如果再加一个[],就成了var score=[["item1","item2",..."itemN"]];score变成了一个含有一个数组元素的数组。这样split就没有意义了,,相当于没分割。

你可以测试一下:

        1)var score=[scoreStr.split(";")]; document.write(score.length);结果:1。

        2)var score=scoreStr.split(";"); document.write(score.length);结果:10。

(3)楼上很多人已经提出,JS定义类型只有var,它会根据值的类型决定。所以没有int这些。

(4)月份在JS里是从0开始的,所以getMonth()需要+1才是实际月份。

(5)代码里没看到你写星期getDay(),注意0代表星期天。

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

<!DOCTYPE  HTML>

<html >

<head>

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

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


<script type="text/javascript">


  //通过javascript的日期对象来得到当前的日期,并输出。

  var date=new Date();

  var array=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];

  document.write(date.getFullYear()+"年"+parseInt(date.getMonth()+1)+"月"+date.getDate()+"日"+" "+array[date.getDay()]+"--班级总分为:"+Math.floor(sum/arrays.length));


  

  

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

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

 var arrays=scoreStr.split(";");

 var sum=0;

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

    sum=sum+parseInt(arrays[i].substr(3,2));

}

  //从数组中将成绩撮出来,然后求和取整,并输出。

  



</script>

</head>

<body>

</body>

</html>


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

有几点问题:1、var m=d.getMonth();得到的是月份比实际的月份要小1,所以应该改为:var m=parseInt(date.getMonth()+1) 

2、var score=[scoreStr.split(";")];有误。scoreStr.split(";");本身还回的就是一个数组,不能再加[]。故应改为:var score=[scoreStr.split(";");即可。

3、for(int i=0;i<score.length;i++)的int改成var。jS声明变量是用var

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

我是来学你们的,我什么都不会,请大神赐教

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

哈哈,从java起家的,你要不说我还真没发现.但是把int改成var了之后,sum和aver还是没有呢

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

朋友 注意啊  这是JavaScript 不是Java  你for(int i=0;i<score.length;i++)  其中的Int 是什么鬼  你改成var  包治百病

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

举报

0/150
提交
取消

求问各位大神,为什么显示不出来sum和平均数aver呢?

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