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
哪个适合你的情况
这段代码具有我在评论中列出的值。
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
哪个适合你的情况