0
私はデモ学生管理をコーディングしています。しかし、以下の問題がありますので、解決してください。どのように配列オブジェクト内のidを検索し、oop javascriptでオブジェクトを編集して削除しますか?
要件
- は、学生の管理:コンソール建物データテーブルを使用して
- を削除、編集を追加します。テーブルには、fiedlsが含まれています。
id
コンソール通話機能に - リストを使用して
Name
Age
Point
- すべての学生がポイント> = 5を持っています。
これは私のコードです:
//
function Student(id, name, age, point) {
this.id = id;
this.name = name;
this.age = age;
this.point = point;
}
Student.prototype = {
setId: function (value) {
this.id = value;
},
getId: function() {
return this.id;
},
setName: function (value) {
this.name = value;
},
getName: function() {
return this.name;
},
setAge: function (value) {
this.age = value;
},
getAge: function() {
return this.age;
},
setPoint: function (value) {
this.point = value;
},
getPoint: function() {
return this.point;
},
};
function StudentController(student) {
this.listStudent = [];
this.id = 1;
}
StudentController.prototype = {
addNew: function (name, age, point) {
var student = new Student(this.id, name, age, point);
this.listStudent.push(student);
this.id += 1;
return student;
},
これは、関数find IDです。しかし、常に最後のIDを配列オブジェクトに返します。
findId: function (id) {
var student = null;
for (var i = 0; i < this.listStudent.length; i++) {
if (id = this.listStudent[i].getId()) {
student = this.listStudent[i];
}
}
return student;
},
これは、関数の編集学生です。しかし、それはないgetId
機能からfindId();
editStudent: function (student) {
var oldStudent = this.findId(student.getId());
console.log('oldStudent', oldStudent);
for (var x = 0; x < this.listStudent.length; x++) {
if (oldStudent = this.listStudent[x].getId()) {
this.listStudent[x] = student;
}
}
},
この機能は同じすぎeditStudent()
機能することができます。
deleteStudent: function (student) {
var crrentStudent = this.findId(student.getId());
for (var y = 0; y < this.listStudent.length; y++) {
if (crrentStudent.getId() === this.listStudent[y]) {
this.listStudent.splice(y, 1);
}
}
},
この学生> = 5のこの機能の並べ替えポイントしかし、私は解決するのに役立つと説明してください:(
// find point student > = 5
findByPoint: function (point) {
var point = '';
for (var i = 0; i < this.listStudent.length; i++) {
if (this.listStudent[i].getPoint() >= point) {
return point;
}
}
},
showStudent: function() {
console.table(this.listStudent);
},
};
var studentController = new StudentController();
studentController.addNew("Hanh", 20, 8);
studentController.findId(1);
studentController.editStudent();
studentController.deleteStudent();
を働いていないように見えるが。どうもありがとう! !
を追加することは、あなたの答えをありがとうございました。ですから、 'editStudent'関数が' student.getId() 'を関数' findId'から呼び出せない理由を説明してください。 –
editStudent関数に引数を渡していないため、 –