好的,我在这里有点不对,我已经浪费了一个小时了,所以希望你们中的一个人可以帮助我。
var a = ['left','top'],
x = [];
for(i=0;i<a.length;i++) {
x.push({
a[i] : 0
});
}
如何将值推送到var a
数组中的每个键?
你可以看到我失败的尝试,但希望能让你深入了解我想要实现的目标。
答案 0 :(得分:46)
您必须使用括号表示法:
var obj = {};
obj[a[i]] = 0;
x.push(obj);
结果将是:
x = [{left: 0}, {top: 0}];
也许只需要一个具有两个属性的对象,而不是一个对象数组:
var x = {};
和
x[a[i]] = 0;
这将导致x = {left: 0, top: 0}
。
答案 1 :(得分:1)
您可以使用:
创建对象数组:
var source = ['left', 'top'];
const result = source.map(arrValue => ({[arrValue]: 0}));
<强>演示:强>
var source = ['left', 'top'];
const result = source.map(value => ({[value]: 0}));
console.log(result);
&#13;
或者如果您想从数组值创建单个对象:
var source = ['left', 'top'];
const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});
<强>演示:强>
var source = ['left', 'top'];
const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});
console.log(result);
&#13;