Используйте переменные с OR, чтобы проверить true / false для другой переменной - PullRequest
0 голосов
/ 21 сентября 2018

Я разработал алгоритм, который проверяет nextDay, nextMonth и nextYear (учитывает високосный год) с границей, определяемой как weekSpan, что, если она попадает в нее (и в определенное время, определенное в другом месте) ... она выполнитдействие .Сейчас это работает, но я обеспокоен, потому что моя переменная weekSpan определяется значениями OR (например, weekSpan = 1 || 2 || 3;).

Учитывая, что существует переменная с именем weekDay (значение между0 и 6) и я хочу проверить, попадает ли тот недельный день в недельный интервал недели ... Я сделал что-то вроде этого:

if (weekDay == weekSpan) {

  (code here)...

}

Но ... Я попытался воссоздать условие, выполнив что-то подобное вChrome V8:

var weekSpan = 1 || 2 || 3 || 4 || 5;

var weekDay = 5;

if (weekDay == weekSpan) {

  console.log("Woooohhhh!");

}

Result: undefined.

Я не уверен, какой правильный способ проверить истину или ложь с моим кодом или просто сделать:

if (weekSpan) {

  (code here)...

}

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Это не так, как || работает.Попробуйте установить weekSpan для массива возможных чисел, а затем проверьте, находится ли weekDay в этом массиве.

var weekSpan = [1, 2, 3, 4, 5];
var weekDay = 5;
if (weekSpan.includes(weekDay)) {
  console.log("Woooohhh!");
}
0 голосов
/ 21 сентября 2018

Вы можете использовать функцию с массивом для значений и проверить.

const isInWeekSpan = v => [1, 2, 3, 4, 5].includes(v);

console.log(isInWeekSpan(3));
console.log(isInWeekSpan(0));

Шаблон

x = 1 || 2

возвращает первое истинное значение 1 в сочетании с логическим ИЛИ ||.Это не подходящий метод для проверки значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...