Javascript对象键为变量

时间:2016-06-22 14:13:11

标签: javascript

我有一个对象:

let object1 = { a: 'one', b: 'two', c: 'three' };

我正在尝试将object1.a设置为object2的键:

object2 = { key: 'something' };

我试图将密钥设为:

[object1].a

object1.a

object1[a]

我记得我必须使用括号表示法,但无法弄清楚如何做到这一点?

我想这样做的原因是因为我要根据道具改变object1的值,所以我可以根据收到的道具来改变一个组件。

1 个答案:

答案 0 :(得分:10)

如果object2已经存在,您只需使用括号表示法:

object2[object1.a] = 'something';

现在,object2有一个名为one的属性,其值为'something'

如果你创建 object2,在ES5中你必须先单独创建对象,然后添加属性:

var object2 = {};
object2[object1.a] = 'something';

在ES2015(" ES6")中,您可以在初始值设定项中使用计算属性名称(注意[]):

// ES2015 only!
let object2 = {
    [object1.a]: 'something'
};

与您在进行作业时使用括号表示法一样,您可以在初始值设定项的括号内添加任何表达式。

请注意,会在对象之间创建持续链接。它在处理初始化程序时纯粹评估object1.a的值,并使用结果值作为新对象上新属性的名称。