JS的学习

对象数组

2021-12-02  本文已影响0人  wy22

  // 对象数组,指的是数组里面存放的是对象

        let arr2 = [

            {

                name:'张三',

                age:20

            },

            {

                name:'李四',

                age:22

            },

            {

                name:'王五',

                age:24

            }

        ]

        console.log(arr2);

使用对象数组保存学生信息,实现对学生的增删改查

 // 定义一个学生管理对象

        let studentManager = {

            //定义一个学生数组

            students: [

                {

                    no: '1001',

                    name: '张三',

                    age: 22,

                    sex: '男'

                },

                {

                    no: '1002',

                    name: '李四',

                    age: 24,

                    sex: '女'

                },

                {

                    no: '1003',

                    name: '王五',

                    age: 26,

                    sex: '男'

                }

            ],

            //显示所有学生信息的方法

            show: function () {

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

                // 循环出所有的学生信息,并拼接到str中

                this.students.forEach(s => {

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

                })

                alert(str)

            },

            //添加学生信息的方法

            add: function () {

                //输入学生的基本信息

                let no = prompt('请输入学号:')

                //判断学号是否重复

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

                while (index !== -1) {

                    no = prompt('学号重复!请重新输入学号:')

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

                }

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

                let age = parseInt(prompt('请输入年龄:'))

                let sex = prompt('请输入性别:')

                // 创建学生对象

                let stu = {

                    no: no,

                    name: name,

                    age: age,

                    sex: sex

                }

                // 将学生对象添加到数组中(学号不能重复)

                this.students.push(stu)

                alert('添加成功!')

            },

            //修改学生信息的方法

            update: function () {

                //输入学生的基本信息

                let no = prompt('请输入学号:')

                //根据学号,到数组中查找并返回指定的学生对象

                let stu = this.students.find(r => r.no === no)

                //根据学号判断,有没有找到该学生,找到了修改该学生的其他信息,没有找到提示学号不存在

                while (!stu) {

                    no = prompt('您输入的学号不存在,请重新输入:')

                    stu = this.students.find(r => r.no === no)

                }

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

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

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

                alert('修改成功!')

            },

            //删除学生信息的方法

            delete: function () {

                //输入学生的基本信息

                let no = prompt('请输入学号:')

                //查找该学生在数组中的位置

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

                while (index === -1) {

                    no = prompt('学号不存在!请重新输入学号:')

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

                }

                this.students.splice(index, 1)

                alert('删除成功!')

            },

            //系统主菜单方法

            menu: function () {

                //接收用户的输入

                let no = prompt('*****学生管理系统*****\n1.查询学生 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;

                    default:

                        alert('成功退出系统!欢迎下次使用!')

                        return   //跳转整个方法

                }

                // 再次调用自身方法(递归)

                this.menu()

            }

        }

        // 使用学生管理对象,调用menu方法

        studentManager.menu()

上一篇 下一篇

猜你喜欢

热点阅读