@lexstile

Как внутри объекта размапить неограниченное количество других объектов?

Как размапить неограниченное количество фильтров в multiple?
На выходе структура должна сохраниться, как в objData.
Важно: имя фильтра должно изменяться с каждой итерацией (filter, filter2, filter3...).
const array = [0, 1, 2, 3]; // фильтров нужно столько же, сколько элементов в массиве
const baseFilter = {
  name1: 111,
  name2: 222,
};

const objData = {
  multiple: {
    filter: {
      ...baseFilter,
      prop: 0,
    },
    filter2: {
      ...baseFilter,
      prop: 1,
    },
    filter3: {
      ...baseFilter,
      prop: 2,
    },
  },
};
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
array.reduce((acc, n, i) => (acc[`filter${i + 1}`] = { ...baseFilter, prop: n }, acc), {})
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Planet_93
@Planet_93
Попробуйте так
for (var p in objData.multiple) {
            console.log(p);
            console.log(objData.multiple[p].prop);
        }

Результат в Console

filter
0
filter2
1
filter3
2
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы