2014-10-05 43 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];