如何在JavaScript中以编程方式命名对象“键”?

时间:2012-05-17 17:25:32

标签: javascript python json

我想要的是我每天用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中命名对象“keys”(或属性?)?

2 个答案:

答案 0 :(得分:14)

像这样:

dict = {};

dict[key] = value;

JavaScript不会以对象文字符号计算属性名称的表达式,但如果使用对象成员运算符的方括号形式,则会这样做。

MDN Member Operators

答案 1 :(得分:5)

更新:这个答案最初写于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;