JavaScript数组推送键值

时间:2011-10-18 20:36:01

标签: javascript arrays push

好的,我在这里有点不对,我已经浪费了一个小时了,所以希望你们中的一个人可以帮助我。

var a = ['left','top'],
    x = [];

for(i=0;i<a.length;i++) {
    x.push({
        a[i] : 0
    });
}

如何将值推送到var a数组中的每个键?

你可以看到我失败的尝试,但希望能让你深入了解我想要实现的目标。

2 个答案:

答案 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}));

<强>演示:

&#13;
&#13;
var source = ['left', 'top'];

const result = source.map(value => ({[value]: 0}));

console.log(result);
&#13;
&#13;
&#13;

或者如果您想从数组值创建单个对象:

var source = ['left', 'top'];
const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});

<强>演示:

&#13;
&#13;
var source = ['left', 'top'];

const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});

console.log(result);
&#13;
&#13;
&#13;

相关问题