JavaScript 对象 - 数字键文字未定义

JavaScript object - numeric key literal undefined

这段代码具有我在评论中列出的值。

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

尝试将字符串 id 解析为数字。

console.log(students[Number(studentid)]);

问题是

var studentid = course.roster[i];     // studentid = 1367

它的 return 字符串和 integer 中的 id 所以尝试将 studentid 转换成字符串

var studentid = parseInt(course.roster[i]);     // studentid = 1367

哪个适合你的情况