这是主要问题:
var obj = {
"22": false,
"32": true,
}
console.log(obj.32) //<---- NOT WORKING??!?!?!
为什么我不能到达对象的一部分?
我知道你不能用数字开始变量,但你可以使用对象部分,所以我怎么能读到这个呢?
答案 0 :(得分:5)
只需使用:
console.log(obj["32"]);
DEMO: http://jsfiddle.net/WrzbV/1/
或obj[32]
- 32
将转换为字符串,其位置与使用"32"
相同。
有两种方法可以通过属性名称访问对象 - 括号表示法(我建议使用)和点符号(你正在使用的是什么)。使用点表示法,您必须使用有效的标识符,32
不是......就像您不能做var 32 = "whatever";
参考:
答案 1 :(得分:-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);
});
答案 2 :(得分:-1)
JavaScript标识符必须以字母,下划线(_
)或美元符号($
)开头。
在JavaScript中,标识符不能以数字开头。
如前所述,使用数组语法将对象属性作为obj["32"]