venom99
@venom99

Как правильно делать перебор в массиве?

На бэк отправляется запрос, чтобы получить список занятий преподавателя, этот список нужно расфасовать по дням недели

60f6a8920bda3581464600.png

Когда на фронт я пытаюсь всё это расфасовать используя функцию getDay()

const response = await axios.post('http://127.0.0.1:5000/prepod/zanatiaa',{
          proved_data: time,
          id_user: this.id_user
        })
        for (let i = 0; i <= 1;i++) {
            if (new Date(response.data[i][1]).getDay() === 1) {
              this.Monday = response.data;
            }
            if (new Date(response.data[i][1]).getDay() === 2) {
              this.Tuesday = response.data;
            }
            if (new Date(response.data[i][1]).getDay() === 3) {
              this.Wednesday = response.data;
            }
            if (new Date(response.data[i][1]).getDay() === 4) {
              this.Thursday = response.data;
            }
            if (new Date(response.data[i][1]).getDay() === 5) {
              this.Friday = response.data;
            }


Все занятия попадают в понедельник, а все остальные таблицы остаются пустыми, я также пробовал в for вместо (let i = 0; i <= 1;i++) прописывать (let i = 0; i <= response.data.lenght;i++), но в таком случае в таблицах вообще ничего не появляется, и они остаются пустыми. Заранее благодарю за помощь.

Пример данных получаемый в логах браузера

0: (7) [1, "2021-02-01 08:15:00", "21-Э-95", "Проектирование баз данных", "Тема", 1, "Д.З."]
1: (7) [1, "2021-02-01 09:55:00", "11-А-96", "Проектирование баз данных", "Тема", 2, "Д.З."]
2: (7) [1, "2021-02-01 11:35:00", "13-С-94", "Проектирование баз данных", "Тема", 3, "Д.З."]
3: (7) [1, "2021-02-02 08:15:00", "21-Э-95", "Программирование 1С", "Тема", 4, "Д.З."]
4: (7) [1, "2021-02-02 09:55:00", "11-А-96", "Программирование 1С", "Тема", 5, "Д.З."]
5: (7) [1, "2021-02-02 11:35:00", "13-С-94", "Программирование 1С", "Тема", 6, "Д.З."]
6: (7) [1, "2021-02-03 08:15:00", "21-Э-95", "Введение в историю ИТ", "Тема", 7, "Д.З."]
7: (7) [1, "2021-02-03 09:55:00", "11-А-96", "Введение в историю ИТ", "Тема", 8, "Д.З."]
8: (7) [1, "2021-02-03 11:35:00", "13-С-94", "Введение в историю ИТ", "Тема", 9, "Д.З."]
9: (7) [1, "2021-02-01 08:15:00", "21-Э-95", "Проектирование баз данных", "Тема", 1, "Д.З."]
10: (7) [1, "2021-02-01 09:55:00", "11-А-96", "Проектирование баз данных", "Тема", 2, "Д.З."]
11: (7) [1, "2021-02-01 11:35:00", "13-С-94", "Проектирование баз данных", "Тема", 3, "Д.З."]
12: (7) [1, "2021-02-02 08:15:00", "21-Э-95", "Программирование 1С", "Тема", 4, "Д.З."]
13: (7) [1, "2021-02-02 09:55:00", "11-А-96", "Программирование 1С", "Тема", 5, "Д.З."]
14: (7) [1, "2021-02-02 11:35:00", "13-С-94", "Программирование 1С", "Тема", 6, "Д.З."]
15: (7) [1, "2021-02-03 08:15:00", "21-Э-95", "Введение в историю ИТ", "Тема", 7, "Д.З."]
16: (7) [1, "2021-02-03 09:55:00", "11-А-96", "Введение в историю ИТ", "Тема", 8, "Д.З."]
17: (7) [1, "2021-02-03 11:35:00", "13-С-94", "Введение в историю ИТ", "Тема", 9, "Д.З."]
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Ответ написан
Комментировать
v3shin
@v3shin
Веб-шаман
Судя по коду:
for (let i = 0; i <= 1;i++) { // вы перебираете первые две записи
    if (new Date(response.data[i][1]).getDay() === 1) {
        this.Monday = response.data; // и перезаписываете в нужный день ВСЮ выборку
    }
}


Попробуйте так.
this.daysData = new Array(7);
response.data.forEach(data => {
    this.daysData[(new Date(data[1])).getDay()].push(data);
});
Ответ написан
Ваш ответ на вопрос

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

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