js之内置对象的练习

我们首先从一个题目说起,故事背景是某班期末考试成绩出来了,要求你统计考试分数,并打印出来,要求格式为:

XXXX年XX月XX日 星期X--班级总分为:XX班级平均分为(保留整数):XX

成绩数据为:"小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"

ok,我们来分析一下题目要求,首先看到前面肯定要用到JS中的Date对象了,但这里是星期X,而getDay()返回的是数字,故就需要我们先写一个数组来做一个转化;如下所示:

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

“--” :这里我们既可以用join()函数来拼接,但我们可以偷波懒,直接打印出来哈哈哈,然后总分和平均分我们可以用for循环来处理,但这里我们注意到成绩数据并不是常规的数字,而是带有姓名的字符串,那这就需要我们先对数据进行预处理了,那如何处理呢?我也想知道啊!!!,好了好了不闹了,我们注意到每个成绩后都有“;”那我们就可以用JS中的split()函数,对分号进行分割,这样就生成如图所示的数组:

生成数组后就好处理了,先定义一个sum为0,再用for循环把数组中每个成绩取出来进行求和,取平均即可,这里取出每个成绩当然有很多方法了, 我这里用了一个substr(3,2),因为每个成绩都是从第三个开始且长度为二,代码如下:

 for (var i = 0; i < sourceArr.length; i ++) {
       sum += parseInt(sourceArr[i].substr(3,2)); }
  document.write("--班级总分为:" + sum);
  document.write(",班级平均分为(保留整数):" + Math.round(sum/sourceArr.length))

这样到这里,整个题目也就over了,附上完整代码:

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>let's do it</title>

<script type="text/javascript">
 var weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
  var date=new Date(); 
  var b1=date.getFullYear() //2021
  var b2=date.getMonth()    //11
  var b3=date.getDate()     //26
 var b4=weekday[date.getDay()]
 document.write(b1+"年"+b2+"月"+b3+"日 "+b4)

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
  var sorceStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
  var sourceArr = sorceStr.split(";");
   //从数组中将成绩撮出来,然后求和取整,并输出。
   var score = new Array();
   var sum = 0;
   for (var i = 0; i < sourceArr.length; i ++) {
       sum += parseInt(sourceArr[i].substr(3,2));}
  document.write("--班级总分为:" + sum);
  document.write(",班级平均分为(保留整数):" + Math.round(sum/sourceArr.length))
</script>
</head>
<body>
</body>
</html>

                                      看完能厚脸皮要个赞不

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

通信学生一枚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值