ES6实现基本的增删改查

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);

运行效果:
在这里插入图片描述觉得有用的话点个赞呗~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值