看书练习记录,真的是个菜鸡,稍微复杂一点就没有思路,慢慢进步。
// 1. 创建一个记录学生成绩的对象,提供一个添加成绩的方法,
// 以及一个显示学生平均成绩的方法。
// 失误:
// 1.没有使用 toFixed(num)方法,即把数字转换成字符
// 串,结果的小数点后有指定位数的数字
function sGrade() {
this.grade = [];
this.add = add;
this.average = average;
}
function add(gra) {
this.grade.push(gra);
}
function average() {
var i= 0;
for (var j=0; j<this.grade.length; j++) {
i +=this.grade[j];
}
return (i/this.grade.length).toFixed(2);
}
var studentGrade = new sGrade();
studentGrade.add(100);
console.log(studentGrade.average());
// 2. 将一组单词存储在一个数组中,并按正序和倒序
// 分别显示这些单词。
var words = arr['one', 'two', 'three', 'four', 'five'];
function display(str) {
console.log(str.reverse());
console.log(str.sort());
}
console.log(display(words));
// 3. 修改本章前面出现过的 weeklyTemps 对象,使它可以
// 使用一个二维数组来存储每月的有用数据。增加一些方法用以
// 显示月平均数、具体某一周平均数和所有周的平均数。
/*
思路
1. 每月的有用数据 每月四个周七天 四个数组 每组七个初始值
2. 月平均数的方法 average
3. 每周的,所有周的 平均数
*/
function weekTemps() {
this.dataStore = [];
this.init= init;//初始化数组
this.add = add;
this.monthAverage = monthAverage;
this.monthAverage = monthAverage;
this.dayAverage = dayAverage;
}
function init() {
var data = [];
for (var i=0; i<4;i++) {
var week = [];
for (var j=0; j<7; j++) {
week[j] = 0;
}
data[i] = week;
}
this.dataStore = data;
}
function add(week, day,temp) { //添加信息
let w=week-1;
let d=day-1; //let声明避免内存泄漏
this.dataStore[w][d] = temp;
}
function monthAverage() {
var total = 0;
var sum = 0;//月数
for (var i = 0; i < this.dataStore.length; ++i) {
for (let j = 0; j < this.dataStore[i].length; ++j) {
total += this.dataStore[i][j];
sum++;
}
}
return total / sum;
}
function weekAverage() { // 所有周平均数
var total = 0;
for (var i = 0; i < this.dataStore.length; ++i) {
for (let j = 0; j < this.dataStore[i].length; ++j) {
total += this.dataStore[i][j];
}
}
return total / this.dataStore.length;
}
function dayAverage(week) { // 一周平均数
var total = 0;
for (var i = 0; i < this.dataStore[week].length; ++i) {
total += this.dataStore[week][i];
}
return total / this.dataStore[week].length;
}
var thisWeek = new weekTemps(1,2,23);
thisWeek.init();
thisWeek.add();
print(thisWeek.dataStore);
// 4. 创建这样一个对象,它将字母存储在一个数组中,并且用
// 一个方法可以将字母连在一起,显示成一个单词。
function display() {
this.words = ['a', 'b', 'c', 'd', 'e', 'f'];
this.toShow = toDisplay();
}
function toDisplay() {
return this.words.join('');
}
var obj = new display();
console.log(obj.toShow);