这是主要问题:
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"]