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