-1

这是主要问题:

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

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

为什么我无法到达对象的一部分?

我知道你不能用数字开始变量,但你可以用对象部分,所以我怎么读这个?

4

3 回答 3

5

只需使用:

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

演示:http: //jsfiddle.net/WrzbV/1/

obj[32]-32将被转换为字符串,并且与使用"32".

有 2 种方法可以通过属性名称访问对象 - 括号表示法(我建议的)和点表示法(您正在使用的)。使用点表示法,您必须使用有效的标识符,这32不是......就像您不能做的那样var 32 = "whatever";

参考:

于 2013-05-09T15:36:58.253 回答
-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);

  });
于 2013-05-09T15:39:56.673 回答
-1

JavaScript 标识符必须以字母、下划线 ( _) 或美元符号 ( $) 开头。在 JavaScript 中,标识符不能以数字开头。

如前所述,使用数组语法访问对象属性obj["32"]

于 2013-05-09T15:41:24.670 回答