Значение Push-ключа массива JavaScript

#javascript #arrays #push

#javascript #массивы #толкать

Вопрос:

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

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

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

Как мне ввести значение для каждого из ключей внутри var a массива?

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

Ответ №1:

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

 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} .

Ответ №2:

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


Для создания массива объектов:

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