有没有办法在 JavaScript 对象文字中使用可变键?

IT技术 javascript
2021-02-22 05:52:45

我有这样的代码。

var key = "anything";   
var object = {   
    key: "key attribute"  
};

我想知道是否有办法key用“任何东西”代替它

喜欢

var object = {  
    "anything": "key attribute"     
};
6个回答

在 ES6 中,使用计算属性名称

const key = "anything";   

const object = {   
    [key]: "key attribute"
//  ^^^^^  COMPUTED PROPERTY NAME
};

注意 周围的方括号key您实际上可以在方括号中指定任何表达式,而不仅仅是变量。

也适用于 chrome。最简单和最好的答案 (y)
2021-04-18 05:52:45
这对 ES6 来说很好,但是对于旧版本呢(IE11 会在上面的代码上崩溃)
2021-05-14 05:52:45

是的。您可以使用:

var key = "anything";
var json = { };
json[key] = "key attribute";

或者,如果您在编写程序时手头有值,则只需使用第二种方法。

在现代 Javascript (ECMAScript 6) 上,您可以用方括号包围变量:

var key = "anything";

var json = {
    [key]: "key attribute"
};

这应该可以解决问题:

var key = "anything";

var json = {};

json[key] = "key attribute";
但是他想在对象字面量的上下文中做到这一点。
2021-04-28 05:52:45

解决方案:

var key = "anything";

var json = {};

json[key] = "key attribute";
@MartinZabel 似乎几乎不需要解释。
2021-04-24 05:52:45
请解释您的解决方案。
2021-05-04 05:52:45