1
function studentClasses() {
var names = [];
var course = [];
var sortCourse = [];
var uniqueCourse = [];
var nameCourse = [];
while (records.readNextRecord()) {
var studentNames = records.getStudentName();
var studentCourse = records.getStudentCourseNumber();
names.push(studentNames);
course.push(studentCourse);
sortCourse.push(studentCourse);
sortCourse.sort();
}
// sort a list of courses to find the unique courses
for (var i = 0; i < sortCourse.length; i++) {
if (sortCourse[i] !== sortCourse[i - 1]) {
uniqueCourse.push(sortCourse[i]);
}
}
uniqueCourse.sort;
nameCourse.length = uniqueCourse.length;
// create multi-d array containing names for a certain course
for (var x = 0; x < uniqueCourse.length; x++) {
for (var y = 0; y < course.length; y++) {
if (uniqueCourse[x] === course[y]) {
nameCourse[x].push(names[y]);
}
}
}
}
這是我的代碼,我的工作和我收到的推值,並得到一個錯誤
Uncaught TypeError: Cannot read property 'push' of undefined(…)
錯誤我有兩個陣列(」 當然「&」名稱「)包含具有特定索引中的數據的信息。我試圖將我的「uniqueCourse」數組中的信息與我的「course」數組進行比較,如果它們匹配,則將使用「course」的索引位置來調用來自「 名稱「。
這裏是問題所在: 當我試圖推動「名稱[Y]」到一個多維數組,將具有等於uniqueCourse(這是5,如果代碼是RAN)的長度,我得到錯誤。
問: 爲什麼我收到一個未定義的錯誤,當我嘗試使用代碼
nameCourse[x].push(names[y]);
從名將信息推送到nameCourse其中x是相應級別我希望這些名稱被存儲?
我想:
nameCourse = [ [however many names called from names[y]],
[however many names called from names[y]],
[however many names called from names[y]],
[however many names called from names[y]],
[however many names called from names[y]] ]
所以在做這樣的事情 nameCourse [X] = [] –
是的。同樣的事情 – DanielS
非常感謝你的幫助 –