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

erhoui1w  于 2023-01-08  发布在  Java
关注(0)|答案(2)|浏览(130)

我想要的是我每天在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中以编程方式命名对象为“键”(或属性?)?

nlejzf6q

nlejzf6q1#

就像这样:

dict = {};

dict[key] = value;

JavaScript不计算对象文本表示法中属性名称的表达式,但如果使用方括号形式的对象成员运算符,则会计算表达式。
MDN Member Operators

sshcrbum

sshcrbum2#

  • 更新 *:这个答案最初写于2012年,但现在有一个更好的方法使用ES 2015/ES6计算属性名。之前的例子(见下文)现在可以写如下:
const key = 'just_a_key';

const obj = { [key]: 5 };

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

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

obj[key] = 5;

相关问题