这段代码包含我在评论中列出的值。
var studentid = course.roster[i]; // studentid = 1367
console.log(studentid); // prints 1367
console.log(students[1367]); // correctly prints a student object
如果我更改第三行中的键以使用具有完全相同值的变量,则结果是未定义的。为什么呢?
console.log(students[studentid]); // fails to print correctly
这是console.log(students[1367])
的输出:
Object {
lname: "John",
fname: "Smith",
grade: "Sophomore",
id: "1367",
email: "jsmith@domain.com"
}
这是console.log(students[studentid])
的输出:
undefined
答案 0 :(得分:2)
问题是
var studentid = course.roster[i]; // studentid = 1367
它的返回字符串和id
中的integer
所以尝试将studentid转换为字符串
var studentid = parseInt(course.roster[i]); // studentid = 1367
将适用于您的情况
答案 1 :(得分:0)
尝试将字符串id解析为数字。
console.log(students[Number(studentid)]);