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