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

还有什么地方可以改进(可以运行)

<!DOCTYPE  HTML>

<html >

<head>

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

<title>编程练习</title>


<script type="text/javascript">

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

  var update=new Date();

  var year=update.getFullYear();

  var month=update.getMonth();

  var day=update.getDate();

  var num=update.getDay();//获取星期  返回0-6整数

  var weekday='';

  switch(num){

    case 0:

          weekday="星期日";

          break;

    case 1:

         weekday="星期一";

          break;

    case 2:

         weekday="星期二";

          break;

    case 3:

         weekday="星期三";

          break;

    case 4:

          weekday="星期四";

          break;

    case 5:

             weekday="星期五";

          break;

    case 6:

        weekday="星期六";

        break;

  }

  var strtime=year+"年"+(month+1)+"月"+day+"日"+"\n"+weekday;

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

      //第二步:一长窜的字符串不好弄,找规律后分割放到数组里更好操作哦。

      //第三步:分割字符串得到分数,然后求和取整。

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

  var strArr=scoreStr.split(";");//分割后  返回是一个数组

  var sum=0;

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

    var num2=strArr[i].indexOf(":");//返回:在的位置

    var intscore=parseInt(strArr[i].substring(num2+1)); //取出数据  parseInt()字符串类型转成整型。 再求和

        sum+=intscore;

  }

  var avgscore=Math.round(sum/strArr.length);//计算平均成绩  再取整

document.write(strtime+"--班级平均分为:"+avgscore+"分");

</script>

</head>

<body>

</body>

</html>


正在回答

5 回答

<html>

<head>

<title>按格式筛选出数组的中成绩并输出</title>

</head>    


<body>

<script>

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

var date = new Date();

console.log(date);

var year = date.getFullYear(),      //获取年份

month = date.getMonth() + 1,    //获取月份

day = date.getDate(),           //获取当前日    

str = '星期' + '日一二三四五六'.charAt(date.getDay()),  //获取当前星期几

currentTime = year + '年' + formatDay(month) + '月' + formatDay(day) + '日' + ' ' + str;

//日期补零操作

function formatDay(x){

return x < 10?'0'+x:x;

}


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

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

var total = 0, num = 0;

for(var i=3; i<scoreStr.length; i+=6) {

total += parseInt(scoreStr.substr(i,i+1));

num+=1;

}

document.write(currentTime + '--班级平均分为:' + Math.round(total/num));

</script>

</body>

</html>


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

尽可能的减少定义变化量吧,直接写道输出语句

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全带,准备启航</title>
<script type="text/javascript">
    var today = new Date();
    var month = today.getMonth()+1;
    var mon=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
    document.write(today.getFullYear()+"年"+month+"月"+today.getDate()+"日"+  " "+mon[today.getDay()]);
    var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
    var sum=0,num=0;
    for(var i=3;i<scoreStr.length;i+=6){
        sum+=parseInt(scoreStr.substring(i,i+2));
        num+=1;
    }
    document.write("--班级平均分为:"+sum/num);
</script>
</head>
<body>
</body>
</html>
我的一些做法,没有完全按要求来。。。
1 回复 有任何疑惑可以回复我~
#1

慕粉15692436228

平均分没有取整数值,平均分应该是四舍五入吧。我的代码按照你这个做了一些改进,但还是不够简洁
2018-08-27 回复 有任何疑惑可以回复我~
#2

小鱼罐头150 回复 慕粉15692436228

谢谢提醒,我会加上的。还有我感觉你用的.substr不太合适吧,substr(start,length)第二个参数是截取字符串的长度,要用的话应该改为.substr(i,2)吧?
2018-08-27 回复 有任何疑惑可以回复我~
#3

慕粉15692436228 回复 小鱼罐头150

哈哈哈 对的应该是substr(i,2)才对
2018-08-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

还有什么地方可以改进(可以运行)

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