var person = { firstname: "", lastname: "", email: "" };
var student = Object.create(person);
var i = 0;
var flag = true;
//create array of arrays. similar to a database. Receive unspecified number
//number of inputs from user
while (flag) {
var input = prompt("Please enter fname, lname, and email");
//Sample input: John, Doe, abcd@efg.com
var results = input.split(", ");
student[i]=({
firstname: results.shift(),
lastname: results.shift(),
email: results,
});
i++;
console.log(student[i].firstname);//testing code. returns student[i] is undefined
console.log(student[0].firstname);//testing code. returns John.
flag = confirm("Do you want to continue?");
};
当我尝试运行此代码时,我收到错误student[i] is undefined
。
即使我在代码正上方设置了student[i]
的值。
但是,当我尝试输出student[0].firstname
时,我会得到John
。
编辑:即使有了
console.log(student[i].firstname);
放在i ++前面,它不起作用
答案 0 :(得分:0)
您在查询数组时递增i
和然后。因此,当你输入一个新项目时,我们可以说索引0,当你查询结果时,你实际上会查询学生1.在i++;
之后向下移动console.log
。
答案 1 :(得分:0)
看看你做了什么:
student[i]=({
...
i++;
...
console.log(student[i].firstname);
所以你设置student[i]
。然后你增加i
,因此它不再是以前的值。然后,您尝试使用该值来访问student
的属性,但由于您尚未设置该属性,因此该属性不存在。
您需要重拨您的来电。我想i++
应该在块的最后。
答案 2 :(得分:0)
分配student[i]
后,请致电i++
。这会设置i=1
。您尚未将students[1]
设置为任何值。
答案 3 :(得分:0)
我相信您要做的是制作一个students
数组,然后push
新的实例。
var students = [];
var flag = true;
//create array of arrays. similar to a database. Receive unspecified number
//number of inputs from user
while (flag) {
var input = prompt("Please enter fname, lname, and email");
//Sample input: John, Doe, abcd@efg.com
var results = input.split(", ");
students.push({
firstname: results.shift(),
lastname: results.shift(),
email: results[0],
});
console.log(JSON.stringify(students)); //testing code
flag = confirm("Do you want to continue?");
};
答案 4 :(得分:0)
i++;
以上console.log(student[i].firstname);//testing code. returns student[i] is undefined
设置i = 1.
答案 5 :(得分:0)
在记录后移动i ++并更改访问结果的方式
var results = input.split(", ");
student[i]=({
firstname: results[0],
lastname: results[1],
email: results[2]
});
console.log(student[i].firstname);//testing code. returns student[i] is undefined
console.log(student[0].firstname);//testing code. returns John.
i++;