JavaScript數據結構與算法-數組練習
阿新 • • 發佈:2018-01-21
二維 console 單詞 rri ++ day 個數 total 數組練習
一. 創建一個記錄學生成績的對象,提供一個添加成績的方法,以及一個顯示學生平均成績的方法。
// 創建一個記錄學生成績的對象 const Students = function Students () { this.grades = []; this.addGrage = addGrade; this.getAverage = getAverage; }; // 提供一個添加成績的方法 function addGrade (grade) { this.grades.push(grade); } // 以及一個顯示學生平均成績的方法 function getAverage () { let total = 0; let len = this.grades.length; while (len--) { total += parseInt(this.grades[len], 10); } return total / this.grades.length; } // 示例 let Mazey = new Students(); Mazey.addGrage(90); Mazey.addGrage(91); Mazey.addGrage(87); Mazey.addGrage(99); Mazey.addGrage(89); Mazey.addGrage(85); Mazey.addGrage(92); console.log(Mazey.getAverage());
二. 將一組單詞存儲在一個數組中,並按正序和倒序分別顯示這些單詞。
// 將一組單詞存儲在一個數組中
let arr = [`Mazey`, `Cherrie`, `John`, `Ada`, `Chole`];
// 正序
console.log(arr.sort());
// 倒序
console.log(arr.sort().reverse());
三. 創建一個對象,使用一個二維數組來存儲每月的有用數據,增加一些方法用以顯示月平均數,具體某一周平均數和所有周的平均數。
const MonthData = function MonthData () { // 初始化月數據 this.monthData = (function () { let arr = []; let week = 4; let day = 7; while (week--) { arr[week] = []; while (day--) { arr[week][day] = 0; } day = 7; } console.log(arr); return arr; })(); this.addData = addData; this.getMonthAverage = getMonthAverage; this.getWeekAverage = getWeekAverage; this.getAllWeekAverage = getAllWeekAverage; }; function addData (week, day, data) { this.monthData[week][day] = data; } function getMonthAverage () { let arr = this.monthData, total = 0, day = 0; for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr[i].length; j++) { total += parseInt(arr[i][j], 10); day++; } } return total / day; } function getWeekAverage (week) { let arr = this.monthData[week], total = 0; for (let i = 0; i < arr.length; i++) { total += parseInt(arr[i], 10); } return total / arr.length; } function getAllWeekAverage () { let self = this, week = this.monthData.length, total = (function () { let total = 0; for (let i = 0; i < week; i++) { total += self.getWeekAverage(i) * self.monthData[i].length } return total; })(); return total / week; } // 示例 let Mazey = new MonthData(); Mazey.addData(0, 1, 100); Mazey.addData(0, 2, 100); Mazey.addData(0, 3, 100); Mazey.addData(0, 4, 100); Mazey.addData(1, 6, 7); console.log(Mazey.getMonthAverage()); console.log(Mazey.getWeekAverage(0)); console.log(Mazey.getWeekAverage(1)); console.log(Mazey.getAllWeekAverage());
四. 創建這樣一個對象,它將字母存儲在一個數組中,並且用一個方法可以將字母連在一起,顯示成一個單詞。
const Letter = function Letter () { this.characters = []; this.addCharacter = addCharacter; this.toLetter = toLetter; }; function addCharacter (character) { this.characters.push(character); } function toLetter () { return this.characters.join(``); } // 示例 let Mazey = new Letter(); Mazey.addCharacter(`m`); Mazey.addCharacter(`a`); Mazey.addCharacter(`z`); Mazey.addCharacter(`e`); Mazey.addCharacter(`y`); console.log(Mazey.toLetter()); // mazey
JavaScript數據結構與算法-數組練習