【问题标题】:How can i name object "keys" programmatically in JavaScript?如何在 JavaScript 中以编程方式命名对象“键”?
【发布时间】:2012-05-25 07:27:31
【问题描述】:

我想要的是我每天用 Python 做的事情。在 JS 中它不起作用,很可能是因为我在 JS 中很烂。

这是我想做的 Python 代码:

>key = 'just_a_key'
>value = 5
>dict = {key: value}
>dict
{'just_a_key':5}
>dict['just_a_key'}
5

这在 JS 中不起作用,那里的键将被命名为 'key'。我知道这是因为我在这里并没有真正创建字典,而是在编写相同代码时使用 json 创建对象。所以我现在的问题是:如何在 JS 中以编程方式命名对象“键”(或属性?)?

【问题讨论】:

标签: javascript python json


【解决方案1】:

像这样:

dict = {};

dict[key] = value;

JavaScript 不会在其对象文字符号中评估属性名称的表达式,但如果您使用对象成员运算符的方括号形式,它会这样做。

MDN Member Operators

【讨论】:

    【解决方案2】:

    更新:这个答案最初是在 2012 年编写的,但现在使用 ES2015/ES6 Computed Property Names 有更好的方法。前面的例子(见下文)现在可以写成如下:

    const key = 'just_a_key';
    
    const obj = { [key]: 5 };
    

    如果您不熟悉 JavaScript 中的对象文字语法,请注意这里的重要方面是动态键名周围的括号(即[key])。方括号表示key(或任何其他内容)应解释为表达式,而不是用作文字值。


    原始答案/pre-ES6 解决方案:

    var obj = {},
        key = 'just_a_key';
    
    obj[key] = 5;
    

    【讨论】:

      猜你喜欢
      • 2014-01-04
      • 2020-04-25
      • 2013-07-20
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多