对象数组
对象数组:就是数组的每个元素是一个对象
定义方式: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()