Вложенный для каждого / ждать завершения вложенного - PullRequest
0 голосов
/ 08 ноября 2019

Об этом спрашивали во многих отношениях, но я не смог найти следствия.

У меня есть два массива, и я пытаюсь сравнить даты между ними и построить список, добавив класс иизменение статуса, когда даты совпадают. У меня есть чувство, что каждый не правильный инструмент. Вот что у меня есть. Я знаю, что внешний цикл продолжается до завершения внутреннего цикла, но я не уверен, как это исправить. Кажется, был бы прямой путь без асинхронного / ожидающего.

FIDDLE

// main event loop
events.forEach(event => {
  let {
    date
  } = event;
  // presaleEvent loop
  presaleEvents.forEach(presaleEvent => {
    let {
      presaleDate
    } = presaleEvent;
    if (presaleDate === date) {
      status = 'PRESALE EVENT';
      eventClass = 'presale';
    }
  });
// only 3, 5 & 6 should be presale events
  let eventNode = `<li class="event ${eventClass}">${status}</li>`;
  $(eventsList).append(eventNode);
});

1 Ответ

1 голос
/ 08 ноября 2019

Я понял это через несколько минут после публикации моего вопроса (и спустя несколько часов после удара головой о стену).

Мне просто пришлось сбросить переменные внутри родительского цикла, но вне внутреннего цикла.

Вот рабочий FIDDLE .

// main event loop
events.forEach(event => {
  let {
    date
  } = event;
  status='EVENT'; // reset the status
  eventClass=''; // reset the eventClass
  // presaleEvent loop
  presaleEvents.forEach(presaleEvent => {
    let {
      presaleDate
    } = presaleEvent;
    if (presaleDate === date) {
      status = 'PRESALE EVENT';
      eventClass = 'presale';
    }
  });
// only 3, 5 & 6 should be presale events
  let eventNode = `<li class="event ${eventClass}">${status}</li>`;
  $(eventsList).append(eventNode);
});
...