JavaScript --- 数组练习题

news/2024/5/17 0:58:14

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 对象, 使它可以使用一个二维数组来存储每月的有用数据。 增加一些方法用以显示月平均数、 具体某一周平均数和所有周的平均数。

       


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

*/
/**
 * 思路
 * 第一步 每月的有用数据 那么就是 每月四个周 初始化四个数组每组七个初始值
 * 第二步 月平均数的方法 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());


 


http://www.niftyadmin.cn/n/3655849.html

相关文章

javascript------列表

一、 列表的抽象数据类型定义 列表是一组有序的数据。每个列表中的数据称之为元素。在JavaScript中&#xff0c;列表中的元素可以是任意数据类型。列表中可以保存多少元素并没有事先限定&#xff0c;实际使用时元素的数量受到程序内存的限制。 属性 listSize 列表的…

.Net Micro Framework研究—模拟器改造

试验平台&#xff1a;.Net Micro Framework 模拟器由于Digi提供的开发板没有LCD显示屏&#xff0c;所以有关绘图方面的操作&#xff0c;只好在模拟器上进行了。如果大家参加了9月18日在北京召开的.Net Micro Framework2007技术大会&#xff0c;并且耐心等到最后&#xff0c;大会…

JavaScript ----- 学习栈

站就是和列表类似的一种数据结构&#xff0c;它可用来解决计算机世界里的很多问题。栈是一种高效的数据结构&#xff0c;因为数据只能在栈顶添加或删除&#xff0c;所以这样的操作很快&#xff0c;而且容易实现。栈的使用遍布程序语言实现的方方面面&#xff0c;从表达式求值到…

.Net Micro Framework研究—IO读写

试验平台&#xff1a;Digi MF开发板&#xff08;图MF071028001.jpg&#xff09;与IO相关的部分如下&#xff1a;&#xff08;3&#xff09;拨码开关SW1 &#xff08;4&#xff09;拨码开关SW2 &#xff08;11&#xff09;GPIO灯—output &#xff08;10&#xff09;GPIO—input…

JavaScript----- 列表练习题

增加一个向列表中插入元素的方法&#xff0c;该方法只在待插元素大于列表中的所有元素时才执 行插入操作。这里的大于有多重含义&#xff0c;对于数字&#xff0c;它是指数值上的大小;对于字母&#xff0c;它 是指在字母表中出现的先后顺序。 题目 分析 1、一个向列表中插入…

.NET Framework/.NET Compact Framework/.NET Micro Framework功能集比较

该资料来源于三亚许云老师的 .NET Micro Framework的讲座&#xff0c;图片中红色部分表示支持的功能&#xff0c;绿色部分表示不支持&#xff0c;不过该图片我看了应该不是最新的&#xff0c;如.NET Compact Framework &#xff0c;xml是支持序列化的&#xff0c;但图片上显示不…

javaScript --- 队列学习

队列是一种列表&#xff0c;不同的是队列只能在队尾插入元素&#xff0c;在队首删除元素。 队列用于存储按 顺序排列的数据&#xff0c;先进先出&#xff0c;这点和栈不一样&#xff0c;在栈中&#xff0c;最后入栈的元素反而被优先处 理。 队列是一种先进先出(First-In-Firs…