流程控制for循环+if判断+Math对象+Array对象+Date对象制作成绩表
body {
text-align: center;
font: 14px "微软雅黑";
}
td {
padding: 8px 10px;
}
table {
display: inline-block;
border: 5px solid #6495ED;
}
caption {
background-color: #6495ED;
color: white;
padding: 10px 5px;
}
流程控制for循环+if判断+Math对象+Array对象+Date对象制作成绩表
//monthArr[mydate.getMonth()] + '月'; 这里注意,直接导出getMonth的值,会比实际月份少1,这是因为,月份是从1-12,而getMonth返回的值则是从0-11,就和星期的返回方法是一样的。所以解决方法也一样,利用返回的值,当做数组的下标调用,对应出正确的月份。用alert(mydate.getMonth())才发现了这个问题,进而解决掉。所以说alert是调试bug的必备良药。
法2——for循环制作表格
//成绩信息
var myArr = [
['小明', 87],
['小花', 81],
['小红', 97],
['小天', 76],
['小张', 54],
['小小', 94],
['小西', 90],
['小舞', 66],
['小迪', 64],
['小曼', 76]
];
//月份
var month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
//星期
var day = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var mydate = new Date(); //var year = mydate.getFullYear();
//日期
var datearr = [mydate.getFullYear() + '年', month[mydate.getMonth()] + '月', mydate.getDate() + '日', day[mydate.getDay()]];
//总分
var sum = 0; //这里一定要定义为0,这样也算声明sum是一个数值的方式,不然直接var sum。会返回NaN,不是一个数值
for(var s = 0; s < myArr.length; s++) {
sum += parseInt(myArr[s][1]);
// alert(myArr.length);
// alert(myArr[s][1]);
}
// alert(sum);
//平均分——等于总分除以班级人数
var pjf = sum / myArr.length;
// document.write(sum);
// document.write(pjf);
//最后单独添加:
myArr.push(['总分', sum], ['平均分', pjf]);
//开始写表格 // alert(myArr[j]); document.write('
document.write('');
');
document.write('
document.write(''); ');
for(var a = 0; a < datearr.length; a++) {
document.write('' + datearr[a] + ' ');
}
document.write('
for(var i = 0; i < myArr.length; i++) { //实现写10行
document.write(''); ');
for(var j = 0; j < 1; j++) { //每行写一遍
document.write('' + myArr[i][0] + ' '); //一遍中的第一个单元格
document.write('' + myArr[i][1] + ' '); //一遍中的第二个单元格
if(i < myArr.length-2) {//抛去最后两个不进行判断,因为最后两个是单独添加的总分和平均分。所以只有在i小于长度减去最后两个后的情况下,才能进行判断。
if(myArr[i][1] >= 80) { //判断成绩后写备注
document.write('优秀 ');
} else if(myArr[i][1] < 80 && myArr[i][1] >= 60) {
document.write('及格 ');
} else {
document.write('不及格 ');
}
}
}
}
document.write('
// alert(myArr.length);
// alert(myArr[i].length);