如何在一行中执行此操作:
var u = { code: 'foo' };
var a = [];
var o = {};
o[u.code] = 'bar';
a.push(o);
以下我假设工作无效:
a.push({ u.code: 'bar' });
a.push({ u['code']: 'bar' });
我可能只是在这里吃脑筋......
答案 0 :(得分:1)
您在ES5中制作代码的最短时间是:
var u = { code: 'foo' }, a = [{}];
a[0][u.code] = 'bar';
浏览器支持computed properties后(在ES6中),您可以使用:
var u = { code: 'foo' }, a = [{[u.code]: 'bar'}];
您今天也可以使用ES6语法,并将transpile语言用于ES5。
答案 1 :(得分:0)
菲利克斯·克林的回答是完全正确,虽然有一个肮脏的替代方案可以在一行中做你想要的事情(不要告诉任何人我告诉你做这种事情= P):
a.push(JSON.parse('{"{0}": "bar"}'.replace('{0}', u.code)))