JavaScript ---配列の演習

1.学生の成績を記録するオブジェクトを作成し、成績を追加する方法と、学生の平均成績を表示する方法を提供します。
 

function  Warehouse() {
			this.formData = [];  // 学生成绩库
			this.add = add;  // 添加方法
			this.average = average; // 计算平均值
		}
		function add(arr) {
			this.formData.push(arr)
		}
		function average() {
			var total = 0;
			var averages = 0.0;
			var datas = []
			
			for (var i = 0; i < this.formData.length; ++i) {
				
				if(Array.isArray(this.formData[i])){ // 判断是否是数组
					for (var col = 0; col < this.formData[i].length; ++col) {
						total += this.formData[i][col];
					}
				}else{
					
					total = this.formData[i];
				}
				if(this.formData[i].length){
					averages = total / this.formData[i].length;
				}else{
					averages = total
				}
				
				
				datas.push(averages.toFixed(2))
				total = 0;
				averages = 0.0;
			}
			
			return datas
		}
		var thisWeek = new Warehouse();
		thisWeek.add(52);
		thisWeek.add([660,660,660,660]);
		thisWeek.add(61);
		thisWeek.add(65);
		thisWeek.add(55);
		thisWeek.add(50);
		thisWeek.add(52);
		thisWeek.add(49);
		console.log(thisWeek.average()); // 显示 ["52.00", "660.00", "61.00", "65.00", "55.00", "50.00", "52.00", "49.00"]

それぞれの追加は、学生のすべての成績を追加するものと見なします

 

2単語のグループを配列に格納し、これらの単語をそれぞれ順方向と逆方向に表示します

 これは、sort()を使用して正の順序で並べ替えてから、reverse()を使用して順序を逆にすることです。

var names = ["David"、 "Mike"、 "Cynthia"、 "Clayton"、 "Bryan"、 "Raymond"];
names.sort();
 names.reverse();
 console.log(names);

 

3この章の前半で紹介したweeklyTempsオブジェクトを変更して、2次元配列を使用して有用な月次データを格納できるようにします。月平均、特定の週平均、およびすべての週平均を表示するいくつかのメソッドを追加します。

       


/***
 //二维数组来存储每月的有 用数据
//创建一个用以显示月平均数的方法
// 一周平均数
//所有周的平均数

*/
/**
 * 思路
 * 第一步 每月的有用数据 那么就是 每月四个周 初始化四个数组每组七个初始值
 * 第二步 月平均数的方法 average
 * 每周的
 * 所有周的 平均数
 */
function weekTemps() {
    this.dataStore = [];
    this.init = init;
    this.add = add;
    this.monthAverage = monthAverage;
    this.weekAverage = weekAverage;
    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) {  // 需要添加第几周 第几天 减一是对应数组的长度 可以输入 add(4,6,6767)  //第四周的第六天 插入6767
    let w = week - 1;
    let d = day - 1
    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();
thisWeek.init()
print(thisWeek.dataStore)

thisWeek.add(2, 3, 45)
thisWeek.add(2, 4, 60)
thisWeek.add(1, 3, 5)
print(thisWeek.dataStore)
print(thisWeek.monthAverage().toFixed(2))
print(thisWeek.weekAverage().toFixed(2))
print(thisWeek.dayAverage(2).toFixed(2))



4このようなオブジェクトを作成します。このオブジェクトは、文字を配列に格納し、メソッドを使用して文字を接続
し、単語として表示します。

function Str(){
	this.words = ["a", "p", "p", "l","e"];
	this.toStr = toStr;
}
function toStr(){
	return this.words.join('');
}
var obj = new Str();
console.log(obj.toStr());


 

おすすめ

転載: blog.csdn.net/wanghongpu9305/article/details/109911967