Задать вопрос
@Artemio95

Как динамично сформировать объект?

Есть массив вида ["first", "second", "third"]
Данные добавляются в конец. Их может быть много. Как на выходе сформировать объект, включающий в себя следующее:
{answer1:  "first", answer2: "second", answer3: "third"} и так сколько этих самих элементов в массиве.
  • Вопрос задан
  • 150 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
С чего должны начинаться имена свойств: const key = 'answer';.

Собираем объект:

const obj = Object.fromEntries(arr.map((n, i) => [ `${key}${i + 1}`, n ]));

или

const obj = arr.reduce((acc, n, i) => (acc[key + ++i] = n, acc), {});

или

const obj = {};
for (const [ i, n ] of arr.entries()) {
  obj[key.concat(-~i)] = n;
}

или

const obj = (function get(arr) {
  const i = arr.length;
  const n = arr.pop();
  return i
    ? { ...get(arr), [[ key, i ].join``]: n }
    : {};
})([...arr]);
Ответ написан
Aetae
@Aetae Куратор тега JavaScript
Тлен
Как обычно:
["first", "second", "third"].reduce((acc, value, i) => {
  acc[`answer${i+1}`] = value;
  return acc;
}, {});

Только вот если у тебя в коде вдруг появляются переменные(и свойства) отличающиеся только цифрой на конце - ты явно что-то делаешь не так.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы