Значение JavaScript в массиве - PullRequest
       0

Значение JavaScript в массиве

26 голосов
/ 19 октября 2011

Хорошо, я немного ошибаюсь, и я уже потратил час на это, надеюсь, один из вас, ребята, сможет мне помочь.

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

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

Как мне передать значение каждой клавише в массиве var a?

Вы можете увидеть мои неудачные попытки, но, надеюсь, это даст вам понимание того, чего я пытаюсь достичь.

Ответы [ 2 ]

46 голосов
/ 19 октября 2011

Вы должны использовать скобки:

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 голос
/ 15 января 2018

Вы можете использовать:


Чтобы создать массив объектов:

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);

Или, если вы хотите создать отдельный объект из значений массивов:

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);
...