Javascript 如何使用分配给子对象的id调用另一个对象中的对象

Javascript 如何使用分配给子对象的id调用另一个对象中的对象,javascript,Javascript,我创建了一个对象,在其中存储十六进制网格的各种属性。 我以x坐标+y坐标+z坐标的格式定义了id hex.id = cX + "x" + cY + "y" + cZ + "z"; //where cX, cY and cZ are some numbers // adding the hex to our hexList with the id as identifier hexList[hex.id] = hex; //hex is a graphics object 但是,现在我无法检

我创建了一个对象,在其中存储十六进制网格的各种属性。 我以
x坐标+y坐标+z坐标的格式定义了id

hex.id =  cX + "x" + cY + "y" + cZ + "z"; //where cX, cY and cZ are some numbers
// adding the hex to our hexList with the id as identifier
hexList[hex.id] = hex;  //hex is a graphics object
但是,现在我无法检索hexlist对象。我确信这与我在id中输入的类型os名称有关

当我创建它时,我想我只需调用
hexList.
就可以使用它了

我已附上我的控制台日志,以帮助您了解该问题。如何使用id(例如5x3y19z)调用和使用hexList父对象中的对象

我是JS新手,我确信我定义HexList的方式是不正确的。但是我不知道那里出了什么问题

考虑到问题可能在于身份证被当作一个数字,我把它改了一点

hex.id =  "hex" + cX + "x" + cY + "y" + cZ + "z"; //where cX, cY and cZ are some numbers
// adding the hex to our hexList with the id as identifier
hexList[hex.id] = hex;  //hex is a graphics object
这给了我答案

> hexList
{hex0x0y0z: Object, hex1x-1y0z: Object, hex2x-2y0z: Object, hex3x-3y0z: Object, hex4x-4y0z: Object, hex5x-5y0z: Object, hex6x-6y0z: Object, hex7x-7y0z: Object, hex8x-8y0z: Object, hex9x-9y0z: Object, 840 more…}
> hexList.hex-10x-10y20z
SyntaxError: identifier starts immediately after numeric literal
> hexList.hex10x10y20z
undefined
很明显,问题出在
-
符号上。但我想既然这些都是id字符串的一部分,就不应该有问题了

我知道我可以简单地使用
“n”
/
“p”
后缀,而不是
-
/
+
符号,并使其工作,但我想知道是否可以简单地更改调用对象的部分

hexList.10x-12y22z
//         ^ That's not a valid character in property names
这是你的问题

JavaScript将其解释为:

hexList.10x - 12y22z;
这显然是无效的

将点符号替换为括号访问,如下所示:

hexList['10x-12y22z']
这是你的问题

JavaScript将其解释为:

hexList.10x - 12y22z;
这显然是无效的

将点符号替换为括号访问,如下所示:

hexList['10x-12y22z']

方括号表示法:
hexList['10x-12y22z']
?hexList[hex.id]或hexList['10x-12y22z']是否返回任何内容?谢谢大家。括号符号有效!方括号表示法:
hexList['10x-12y22z']
?hexList[hex.id]或hexList['10x-12y22z']是否返回任何内容?谢谢大家。括号符号有效!非常感谢。我完全忘记了括号符号。我现在觉得自己像个白痴D@RishavSharan:不客气:-)我敢肯定每个人都有“哦,德普”-的时刻:谢谢。我完全忘记了括号符号。我现在觉得自己像个白痴D@RishavSharan:不客气:-)我敢肯定每个人都有“哦,天哪”-”的时刻:P