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

时间:2016-04-26 05:03:09

标签: javascript object-literal

这段代码包含我在评论中列出的值。

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

2 个答案:

答案 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)]);