2016-09-28 43 views
0

我有两个变量,attribute(例如“type”)和value(例如“car”)。我想创建一个对象,其中的键是属性(值是值)。像这样:{"type": "car"}有没有用变量键初始化对象的任何干净的方法?

当我做

let obj = { attribute: value } 

我得到

> {"attribute": "car"} 

这是很容易与两行,我可以只

let obj = {}; 
obj[attribute] = value; 

不过,我想知道是否有一个干净的方式做到这一点(因为我是一个前Rubyist,我喜欢把事情做得干净准确)?

+0

(此外,我觉得这是一个已经在这里有一个答案的问题,但我无法找到一个类似的问题,所以我提前如果这是一个重复的道歉) –

+0

见副本中接受答案的底部。 –

回答

1

Computed property names,从ES2015又名ES6开始。

let a = "type", b = "car"; 
 
console.log({[a]: b});

+0

完美!我知道必须有一些东西,但我的同事和我都很难过。 –

+1

@MikeManfrin要知道,这不一定能在任何地方工作,至少现在是这样。 – Pointy

+0

我们很庆幸地使用打字稿 - > es6,所以这应该适合我们,谢谢! –