7

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

这是可以做我想要的Python代码:

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

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

4

2 回答 2

17

像这样:

dict = {};

dict[key] = value;

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

MDN 会员运营商

于 2012-05-17T17:26:28.430 回答
12

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

const key = 'just_a_key';

const obj = { [key]: 5 };

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


原始答案/ ES6之前的解决方案:

var obj = {},
    key = 'just_a_key';

obj[key] = 5;
于 2012-05-17T17:26:48.267 回答