我想要的是我每天用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”(或属性?)?
答案 0 :(得分:14)
像这样:
dict = {};
dict[key] = value;
JavaScript不会以对象文字符号计算属性名称的表达式,但如果使用对象成员运算符的方括号形式,则会这样做。
答案 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;