Момент проверки JS данные toString не оцениваются должным образом, если проверка - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь создать функцию для создания массива следующих двух недель дней, кроме пятницы, субботы или воскресенья. moment().isoWeekday().toString() возвращает число 1-7 в зависимости от дня. У меня есть оператор if, проверяющий, соответствует ли каждый день 5, 6 или 7, но все они возвращают истину независимо от дня. Я не уверен, что делаю не так. Пожалуйста, сообщите.

    for (let i = 1; i < 14; i++) {
      if (moment().add(i, 'days').isoWeekday().toString() !== '5' || 
          moment().add(i, 'days').isoWeekday().toString() !== '6' ||
          moment().add(i, 'days').isoWeekday().toString() !== '7') {
            console.log(moment().add(i, 'days').isoWeekday().toString())
            dayArray.push(moment().add(i, 'days').toString());
      }
    }

1 Ответ

1 голос
/ 05 августа 2020

Кажется, что ошибка возникла из-за вашего условия, вы используете OR (||) вместо AND (&&)

for (let i = 1; i < 14; i++) {
    if (moment().add(i, 'days').isoWeekday().toString() !== '5' &&
        moment().add(i, 'days').isoWeekday().toString() !== '6' &&
        moment().add(i, 'days').isoWeekday().toString() !== '7') {
        console.log(moment().add(i, 'days').isoWeekday().toString())
        dayArray.push(moment().add(i, 'days').toString());
    }
}
...