标签:函数 .so search push 一个 删除对象 on() 数据类型 cas
【自定义对象】
1、基本概念
①对象是拥有一系列无序属性和方法的集合:
②键值对,对象中的数据,是以键值对的形式存在,对象的每个属性和方法,都对应一个键名,以键取值。
③属性:描述对象特征的一系列变量,称为属性。
④方法,描述对象行为的一系列函数,称为方法。
2、对象的声明
var obj ={
key1:value1,
key2:value2,
func1:function(){
}
}
对象中的数据以键值对的形式存储,键与键值之间用:分隔,多个键值对之间用,分隔
对象中的键,可以是出了数组,对象以外的任何数据类型,但是,一般我们只有普通变量名作为键。
对象的值,可以是任何数据类型,包括数组和对象
使用new关键字声明,var obj=new Object{
obj.key1=value1;
obj.key2=value2;
}
3、对象中属性和方法的读写:
①.运算符,对象名.属性,对象名.方法
②用过["key"]调用。对象名.["属性名"] 对象名.["方法名"]();
>>>如果键中包含特殊字符,则只能使用第二种方式;
>>>对象中直接写变量名,默认使用全局变量,如果需要调用对象自身的属性或者方法,需要使用对象名.属性,或者this.属性
this.age+person.name,但是推荐使用this
对象外使用person.name
③删除对象的属性和方法,delete 对象名.属性名/方法名
定义一个对象
var classes = {
className: "HTML5-1705",
studentCount: 27,
students: [{
name: "xxx",
sex: "男",
chinese: 0,
maths: 0,
english: 0,
sum: 0
}, {
name: "xxx",
sex: "男",
chinese: 20,
maths: 30,
english: 40,
sum: 90
}, {
name: "xxx",
sex: "男",
chinese: 9,
maths: 8,
english: 7,
sum: 24
}],
//录入学员的成绩
addStudent: function() {
var name = prompt("请输入学员姓名:");
var sex = prompt("请输入学员性别:");
var chinese = parseFloat(prompt("请输入学员语文成绩:"));
var maths = parseFloat(prompt("请输入学员数学成绩:"));
var english = parseFloat(prompt("请输入学员英语成绩:"));
var sum = chinese + maths + english;
var student = {
name: name,
sex: sex,
chinese: chinese,
maths: maths,
english: english,
sum: sum
}
this.students.push(student);
this.students.sort(function(a, b) {
return b.sum - a.sum;
});
},
//展示成绩
showStudent: function() {
var arr = this.students;
console.log("\t杰瑞教育HTML5-1705班成绩展示");
console.log("序号\t姓名\t性别\t语文\t数学\t英语\t总分");
arr.sort(function(a, b) {
return b.sum - a.sum;
});
arr.forEach(function(item, index) {
console.log((index + 1) + "\t\t" + item.name + "\t" + item.sex + "\t\t" + item.chinese + "\t\t" + item.maths + "\t\t" + item.english + "\t\t" + item.sum);
})
},
//删除某一条记录
delStudent: function() {
if (this.students.length <= 0) {
alert("没有学员数据,无法删除!");
return;
}
var no = prompt("请输入要删除的学员序号:");
if (no < 1 || no > this.students.length) {
alert("序号输入有误!请确认学员序号重新输入!");
return;
}
this.students.splice(no - 1, 1);
},
//查询某一条记录
searchStudent: function() {
var no = prompt("请输入要查询的学员序号:");
var arr = this.students;
if (no < 1 || no > arr.length) {
alert("查无此人!请确认序号!");
} else {
console.log("查询完成!查询到学员信息如下:");
console.log("序号\t姓名\t性别\t语文\t数学\t英语\t总分");
console.log(no + "\t\t" + arr[no - 1].name + "\t" + arr[no - 1].sex + "\t\t" + arr[no - 1].chinese + "\t\t" + arr[no - 1].maths + "\t\t" + arr[no - 1].english + "\t\t" + arr[no - 1].sum);
}
},
//修改任意条信息
updateStudent: function() {
if (this.students.length <= 0) {
alert("没有学员数据,无法修改!");
return;
}
var no = prompt("请输入要修改的学员序号:");
if (no < 1 || no > this.students.length) {
alert("序号输入有误!请确认学员序号重新输入!");
return;
}
if (!confirm("您确认修改学员是【" + this.students[no - 1].name + "】吗?")) {
alert("操作已取消!");
return;
}
var name = prompt("请输入学员姓名:");
var sex = prompt("请输入学员性别:");
var chinese = parseFloat(prompt("请输入学员语文成绩:"));
var maths = parseFloat(prompt("请输入学员数学成绩:"));
var english = parseFloat(prompt("请输入学员英语成绩:"));
var sum = chinese + maths + english;
var student = {
name: name,
sex: sex,
chinese: chinese,
maths: maths,
english: english,
sum: sum
}
this.students[no - 1] = student;
}
}
//管理区域,这是控制台,对整体控制选择
console.log("\t杰瑞教育成绩管理系统");
console.log("1、展示学员信息\t2、学员信息录入\n3、删除学员信息\t4、查询学员信息\n5、修改学员信息\t6、退出系统");
while (true) {
var num = parseInt(prompt("请输入操作序号"));
var is = false;
switch (num) {
case 1:
classes.showStudent();
break;
case 2:
classes.addStudent();
console.log("信息录入成功!");
classes.showStudent();
break;
case 3:
classes.delStudent();
console.log("信息删除成功!");
classes.showStudent();
break;
case 4:
classes.searchStudent();
break;
case 5:
classes.updateStudent();
console.log("信息修改成功!");
classes.showStudent();
break;
case 6:
console.log("系统退出成功!");
is = true;
break;
default:
alert("序号输入有误!");
break;
}
if (is) break;
console.log("是否继续?(输入N退出系统)");
var isGo = prompt("请输入序号:N退出系统,其他字符继续");
if (isGo == "N" || isGo == "n") {
console.log("系统退出成功!");
break;
}
}
标签:函数 .so search push 一个 删除对象 on() 数据类型 cas
原文地址:http://www.cnblogs.com/zhangxinlei/p/7465219.html