对象数组

对象数组

对象数组:就是数组的每个元素是一个对象

定义方式:let Arry = [{},{},{}....]

示例:学生管理系统
// 定义一个学校对象

        let school = {

            // 该数组保存的是所有的学生信息

            stus:[{

                no:1001,

                name:'周杰伦',

                age:20,

                gender:'男'

            },{

                no:1002,

                name:'张学友',

                age:30,

                gender:'男'

            },{

                no:1003,

                name:'蔡依林',

                age:22,

                gender:'女'

            }],

            // 系统主菜单方法

            meau(){

                let no = Number.parseInt(prompt(`欢迎使用学生管理系统

                1.查询学生 2.添加学生 3.修改学生 4.删除学生 0.退出系统`))

                switch(no){

                    case 1:

                       // 调用查询学生方法

                        this.show()

                        break

                    case 2:

                       // 调用添加学生方法

                        this.add()

                        break

                    case 3:

                        // 调用修改学生方法

                        this.update()

                        break

                    case 4:

                        // 调用删除学生方法

                        this.delete()

                        break

                    case 0:

                        alert('退出系统!')

                        return

                }

                // 表示指向当前方法本身

                this.meau()

            },

            // 查询学生方法

            show(){

                console.log('-----------显示学生信息---------');

                let str = '学号    姓名  年龄 性别\n'

                this.stus.forEach(s=>{

                    str += `${s.no} ${s.name} ${s.age}   ${s.gender}\n`

                })

                alert(str)

            },

            // 添加学生的方法

            add(){

                let obj = {}

                obj.no = Number.parseInt(prompt('请输入学号:'))

                let index = this.stus.findIndex(r=>r.no===obj.no)

                while(index!=-1){

                    obj.no = parseInt(prompt('学号重复,请重新输入学号:'))

                    index = this.stus.findIndex(r=>r.no===obj.no)

                }

                obj.name = prompt('请输入姓名:')

                obj.age = Number.parseInt(prompt('请输入年龄:'))

                obj.gender = prompt('请输入性别:')

                this.stus.push(obj)

                alert('添加成功!')

            },

            // 修改学生方法

            update(){

                let no = parseInt(prompt('请输入需要修改学生的学号:'))

                let index = this.stus.find(r=>r.no===no)

                while(!index){

                    no = parseInt(prompt('抱歉,没有该学生,请输入需要修改学生的学号:'))

                    index = this.stus.find(r=>r.no===no)

                }

                index.name=prompt('请重新输入该学生的姓名:')

                index.age=parseInt(prompt('请重新输入该学生的年龄:'))

                index.gender=prompt('请重新输入该学生的性别:')

                alert('修改成功!')

            },

            // 删除学生方法

            delete(){

                let no = parseInt(prompt('请输入需要删除的学生的学号'))

                let index = this.stus.findIndex(r=>r.no===no)

                while(index===-1){

                    no = parseInt(prompt('抱歉,没有该学生,请输入需要删除的学生的学号:'))

                    index = this.stus.findIndex(r=>r.no===no)

                }

                this.stus.splice(index,1)

                alert('删除成功!')

            }

        }

        school.meau()

你可能感兴趣的:(对象数组)