2012-11-21 3 views
0

나는 각 코스마다 많은 모듈을 가진 여러 코스의 학생이 있습니다.자바 스크립트 다차원 배열

은 지금까지 내가 가지고 :

var myStudent = new MySchool.Student("Bart", "Simpson", "0800 Reverse", "Some Street", "Springfield"); 

myStudent.addCourse(new MySchool.Course("S1000", "Skateboarding")); 
myStudent.addCourse(new MySchool.Course("Q1111", "Driving")); 
myStudent.addCourse(new MySchool.Course("D999", "Avoiding Detention")); 

Student.JS

MyStudent.Student = function (firstName, lastName, tel, address1, address2) { 
    this._firstName = firstName; 
    this._lastName = lastName; 
    this._tel = tel; 
    this._address1 = address1; 
    this._address2 = address2; 
    this._courses = new Array(); 

}; 

//Add course: 
addCourse: function (course) { 
    this._courses.push(course); 
}, 

이 잘 작동합니다. 그러나이 모듈을 추가하고 싶습니다. 따라서 각 코스에는 여러 개의 모듈이 있습니다.

나는 다차원 배열을 수행하려했지만 성공하지 못했습니다.

누군가 조언 해 주실 수 있습니까? 대안이 있습니까?

+1

'MySchool.Course'는 어디에 있습니까? 모듈에 다른 배열을 추가 할 수없는 이유는 무엇입니까? –

+6

"Some Street"은 "742 Evergreen Terrace"여야합니다. – ckal

+0

'var sktCourse = new MySchool.Course (...); sktCourse.addModule (새 MySchool.Module (...)); myStudent.addCourse (sktCourse); ' – Shmiddty

답변

0

모듈을 코스에 속한 이후이 작업을 수행하는 방법은 modules 배열을 코스에 포함시키는 것입니다. 그럼 당신은 과정에 모듈을 추가 할 직접

1

아니 정확히 확인 당신은 내가, 여기에 이해 당신이 할 수있는 방법이 무엇인지 정확히 만에서 무엇을 의미하는지 :

MyStudent.Student = function (firstName, lastName, tel, address1, address2) { 
    this._firstName = firstName; 
    this._lastName = lastName; 
    this._tel = tel; 
    this._address1 = address1; 
    this._address2 = address2; 
    this._courses = []; 

    this.addCourse = function (course) { 
     this._courses.push(new Course(course)); 
    }; 
}; 


//Add course: 

MySchool.Module = function(name){ 
    this.name = name; 
} 

MySchool.Course = function(name) { 

    this.name = name; 
    this.modules = []; 

    this.addModule = function(name) { 
     this.mmodules.push(new MySchool.Module(name)); 
    } 
} 

그런 식으로, 당신은이 학생을 만들 수 있습니다 addCourse 함수. 그런 다음 원하는 코스를 추가하고 각 코스에 addModule 함수를 추가하여 모듈로 채 웁니다.

courses = [ 
    "poney" : [ 
     "ride", 
     "jump" 
    ], 
    "english" : [ 
     "oral", 
     "grammar", 
     "written" 
    ] 
] 

을 그리고 다음을 통해 어떤 루프 함수를 작성 :

당신을 취 학생을 만드는 exemple에 같은 더 복잡한 무언가를 할 수는 같을 것이다 과정/모듈의 배열을 매개 변수 배열에 추가하고 addCourse 및 addModule 함수를 사용하여 학생의 코스/모듈을 채 웁니다. 하지만 JS로 시작하면 어쩌면 단순한 해결책을 선호 할 것입니다.

0

여기 신속하고 더러운 :이처럼 사용할 수 있습니다

addCourse: function (course) { 
    course.modules = []; 
    course.addModule = function(module){ 
     this.modules.push(module); 
    } 
    this._courses.push(course); 
    return course; 
} 

: 가장 좋은 방법은의 Course 생성자 안에이 모든 것을 처리하는 것입니다 물론

myStudent.addCourse(new MySchool.Course("S1000", "Skateboarding")).addModule(...); 

하는 당신을 우리에게 보여주지 않았다.

+0

///constructor.Course = function (courseCode, name) { this._courseCode = courseCode; this._name = name; this._modules = new Array(); }; – Kush