1、通过字面量定义学生对象,学生对象属性包括:学号、姓名、出生日期、成绩,方法包括学习、睡觉、吃饭。
2、创建4名学生对象,并将学生对象保存至数组中。
3、遍历数组,用于显示数组中所有的学生信息(按学生成绩高到低显示)。
4、定义方法,用于更新数组中的学生信息。
5、根据学号删除数组中的学生信息。
6、根据学号查询具体的某名学生信息,并进行显示。
推荐步骤如下:
1、通过字面量创建4名学生对象(也可定义一个学生类,然后创建4个学生对象)
2、定义一个学生管理类StudentManager,该类中有如下方法,用于完成相应操作:
// save(student): 将学生对象保存至数组
// display() :显示所有的学生信息
// update(student) :更新学生信息
// del(id): 根据学号删除学生信息,即将数组中的学生对象删除
// find(id): 根据学号查询具体的某名学生信息,返回值是Student对象
//定义学生类
class Student{
constructor(stu_Id,stu_Name,stu_Birthday,stu_score){
this.stu_Id=stu_Id;
this.stu_Name=stu_Name;
this.stu_Birthday=stu_Birthday;
this.stu_score=stu_score;
}
study(){
}
eat(){
}
score(){
}
}
//创建4个学生对象
let s1 = new Student(1, '小明', '1998-08-23', 95);
let s2 = new Student(2, '小黄', '1999-05-13', 98);
let s3 = new Student(3, '小军', '1999-06-20', 90);
let s4 = new Student(4, '小刚', '1997-06-20',89);
class StudentManager{
constructor(){
//定义数组
this.arr=[];
}
//将学生对象保存到数组中
save(Student){
this.arr.push(Student);
}
//根据学生成绩降序显示学生信息
display() {
this.arr.sort(function(a,b){
return b.stu_score-a.stu_score
})
//遍历数组并打印
for(let s of this.arr){
console.log('stu_Id:',s.stu_Id,'stu_Name:',s.stu_Name,
'stu_Birthday:',s.stu_Birthday,'stu_score:',s.stu_score);
}
}
//update(student) :更新学生信息
update(Student){
let id = Student.stu_Id;//将对象的stu_Id赋值给id
/*这个方法的作用是返回满足条件的第一个元素的索引,自动传三个函数分别是
* 当前元素,当前元素的索引,调用此函数的数组
*/
let idx=this.arr.findIndex(function(s,i,arrs){
let id_=s.stu_Id; //s.stu_Id就是stu_Id的值
//相等代表符合函数条件,此时idx即为我们要更新对象的索引
return id == id_
})
if(idx!=-1){ //-1代表数组中找不到所求数
//数组的替换方法,idx代表替换开始的值,1代表替换的个数,Student替换的值
this.arr.splice(idx, 1, Student);//替换对象完成更新
}else{
console.log('查无此id');
}
}
//del(id): 根据学号删除学生信息,即将数组中的学生对象删除
del(id){
let idx = this.arr.findIndex(function (s, i, arrs) {
return id == s.stu_Id
})
//数组的删除方法,idx代表删除开始的值,1代表删除的个数
this.arr.splice(idx, 1);
}
//find(id): 根据学号查询具体的某名学生信息,返回值是Student对象
find(id){
let idx =this.arr.find(function(v,i,arrs){
return id==v.stu_Id;
})
console.log(idx);
}
}
let sm=new StudentManager();
//调用save方法
console.log('添加学生信息:');
sm.save(s1);
sm.save(s2);
sm.save(s3)
sm.save(s4);
//调用display()方法
sm.display();
console.log('-------------------------------------------------------------------------------------------')
//调用update方法
console.log('更新学生信息:');
let up=new Student(1, '小明', '1998-01-23', 93);
sm.update(up);
sm.display();
console.log('-------------------------------------------------------------------------------------------')
//调用del()方法
console.log('删除学生:');
sm.del(2)
sm.display();
console.log('-------------------------------------------------------------------------------------------')
//调用find()方法
console.log('查找单个学生:');
sm.find(3);
运行效果:
觉得有用的话点个赞呗~