对象属性名称作为数字

新手上路,请多包涵

根据 MDN JavaScript 文档,您可以使用整数定义对象文字属性名称:

此外,您可以使用数字或字符串文字作为属性名称。

像这样:

 me = {
    name: "Robert Rocha",
    123: 26,
    origin: "Mexico"
}

我的问题是,如何引用以整数作为名称的属性?我尝试了通常的 me.123 但出现错误。我能想到的唯一解决方法是使用 for-in 循环。有什么建议么?

原文由 Robert 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 953
2 个回答

您可以像引用数组一样引用对象的属性,并使用 me[123]me["123"]

原文由 Tom 发布,翻译遵循 CC BY-SA 3.0 许可协议

点符号仅适用于作为有效标识符的属性名称。标识符必须以字母、$、_ 或 unicode 转义序列开头。对于所有其他属性名称,您必须使用方括号表示法。

在对象文字中,属性名称必须是标识符名称、字符串文字或数字文字(由于属性名称必须是字符串,因此将被转换为字符串):

 var obj = {1:1, foo:'foo', '+=+':'+=+'};

alert(obj[1] + ' ' + obj.foo + ' ' + obj['+=+']); // 1 foo +=+

原文由 RobG 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题