これが主な問題です。
var obj = {
"22": false,
"32": true,
}
console.log(obj.32) //<---- NOT WORKING??!?!?!
オブジェクトの一部に到達できないのはなぜですか??
変数を数字で始めることはできませんが、オブジェクトの部分で始めることはできます。
これが主な問題です。
var obj = {
"22": false,
"32": true,
}
console.log(obj.32) //<---- NOT WORKING??!?!?!
オブジェクトの一部に到達できないのはなぜですか??
変数を数字で始めることはできませんが、オブジェクトの部分で始めることはできます。
使用するだけです:
console.log(obj["32"]);
デモ: http://jsfiddle.net/WrzbV/1/
またはobj[32]
- は32
文字列に変換され、 を使用した場合とまったく同じように検出され"32"
ます。
プロパティ名でオブジェクトにアクセスするには、ブラケット表記 (私が提案したもの) とドット表記 (使用しているもの) の 2 つの方法があります。ドット表記では、有効な識別子を使用する必要がありますが、これ32
は...できないのと同じですvar 32 = "whatever";
参照:
数字でプロパティにアクセスすることはできません
キーを文字列に変更するか
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);
});
JavaScript 識別子は、文字、アンダースコア ( _
)、またはドル記号 ( $
) で始まる必要があります。JavaScript では、識別子を数字で始めることはできません。
既に述べたように、配列構文を使用してオブジェクト プロパティにアクセスします。obj["32"]