Задать вопрос
Qairat
@Qairat
frontend developer, angular 2+

Как преобразовать объект в другую, добавив в него новые поля?

Есть вот такой объект:
dropdown: DropDown [] = [
    {
      'month': 'jan',
      'days': [
        {'day': 'monday'},
        {'day': 'sunday'}
      ]
    },
    {
      'month': 'feb',
      'days': [
        {'day': 'monday-f'},
        {'day': 'sunday-f'}
      ]
    }
  ];

то есть у него интерфейс такой:
interface DropDown {
  month: string;
  days: Days[];
}

interface Days {
  day: string;
}


Теперь мне надо его преобразовать в такой объект:
interface DropDownEx {
  month: string;
  isOpen: boolean;
  days: Days[];
}

interface Days {
  day: string;
  isOpen: boolean;
}

то есть надо добавить поля isOpen. Но не получается.
Делаю это таким образом:
updateData (rows: DropDown[]) {
    const res: DropDownEx[] = rows.map(r => {
      return { month: r.month, isOpen: false, days: [] };
    });

    res.forEach(p => {
      let daysGroup = rows.filter(r => r.month === p.month);
      p.days = daysGroup.map(r => {
        // вот тут не могу дать значения для day
        return { day: '', isOpen: false};
      });
    });
    
    console.log(res);
    return res;
  }


А вот ссылка на plunker

Как решить проблему? Спасибо!
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@asdz
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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