2016-04-26 75 views
0

這段代碼具有我在註釋中列出的值。JavaScript對象 - 數字鍵字面值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: "[email protected]" 
} 

這是console.log(students[studentid])輸出:

undefined 
+2

可能'studentid'就是回報字符串 – uzaif

+0

這是否解決您的問題? – uzaif

回答

2

問題是

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

其返回的字符串和integerid所以儘量到studentid轉換成字符串

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

將工作你的情況

0

嘗試將字符串ID解析爲數字。

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