2013-05-09 67 views
-1

這是主要的問題:的JavaScript - 對象未能

var obj = { 
    "22": false, 
    "32": true, 
} 

console.log(obj.32) //<---- NOT WORKING??!?!?! 

爲什麼我不能達到目標的一部分?

我知道你不能用數字開始變量,但你可以用對象部分,所以我怎麼讀這個?

+1

不要使用','在對象定義的末尾。舊版本的IE中斷。它允許在ECMAScript5中,但它更容易,只是不包括它 – Ian 2013-05-09 15:41:16

回答

5

只需使用:

console.log(obj["32"]); 

DEMO:http://jsfiddle.net/WrzbV/1/

或者obj[32] - 的32將被轉換爲字符串,然後會被發現只是與使用"32"

有兩種方法可以通過屬性名稱 - 括號符號(我建議的)和點符號(您正在使用的)來訪問一個對象。有了點符號,你必須使用一個有效的標識符,這32不...就像你不能這樣做var 32 = "whatever";

參考:

+1

剛剛完美,謝謝老兄! – user2336726 2013-05-09 15:41:32

-1

您將無法用數字來訪問性能

要麼改變的關鍵,串

var obj = { 
    "i": false, 
    "j": true, 
} 

console.log(obj.i); 
console.log(obj.j); 

或使用

console.log(obj["32"]) 

或者,如果你可以使用jQuery然後使用

$.each(obj, function(key,value){ 

    console.log(key +' -- '+ value); 

    }); 
-1

一個JavaScript標識符必須以字母開頭,下劃線(_),或美元符號($)。 在JavaScript中,標識符不能以數字開頭。

正如已經說過的,使用數組語法來訪問對象屬性作爲obj["32"]