2014-10-05 63 views
0

我試圖將學生對象的所有屬性都推送到保存學生對象的數組中。我所有的屬性保存一個,這是一個屬性包含一個字符串數組被推入學生數組,我不知道爲什麼。當我嘗試打印包含數組的(第一個)元素到控制檯時,它聲明它是未定義的。這裏是我的代碼至今:無法將特定的對象屬性推入數組

var person = { firstname: "", lastname: "", email: "" }; 
function Student(){}; 
Student.prototype = person; 
Student.prototype.sid = ""; 
Student.prototype.courses = []; 
var students = []; 



var answer = null; 

function getstudents(answer, students){ 
    var teststudent = new Student; 
    for(var i = 0; i < answer.length; i++) { 
     if (i < 4) { 
      teststudent[i] = answer[i]; 

     } 
     if(i > 3) { 
      teststudent.courses[i] = answer[i]; 
      console.log(teststudent.courses[i]); //element is defined 
     } 

    } 
    students.push(teststudent); 
    console.log("printing ", students[0][4]); //states that the element is undefined 
} 

function getanswer(string) { 
    answer = string; 
    return answer; 
} 



do { 
    getanswer(prompt("Please enter your first name, last name, student ID, email and courses (seperated by ',')")); 
    if(answer !== ""){ 
     var array = answer.split(','); 
     answer = array; 
     getstudents(answer, students); 
    } else { 
     answer = null; 
    } 


} while(answer !== null); 
+2

您正在嘗試teststudent的'值設爲[0]'來'teststudent [3]'時,你應該是設置'teststudent ['firstname']'等的值。 – Havenard 2014-10-05 02:12:10

+0

請1)告訴你打印後你想看到什麼,2)顯示你如何調用函數'getstudent'。 – 2014-10-05 13:06:41

回答

0

你的意思是:

teststudent.courses[i-4] = answer[i]; 
相關問題