首页 > 解决方案 > 使用带有 OR 的变量来检查另一个变量的真/假

问题描述

我开发了一个算法来检查 nextDay、nextMonth 和 nextYear(考虑闰年),定义了一个称为 weekSpan 的边界,如果它落在其中(并且在其他地方定义的特定时间)......它将执行一个动作。它现在正在工作,但我很担心,因为我的 weekSpan 变量是用 OR 值定义的(例如 weekSpan = 1 || 2 || 3;)。

考虑到有一个名为 weekDay 的变量(值在 0 和 6 之间),我想检查该 weekDay 是否在 weekSpan 内......我做了这样的事情:

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)...

}

有任何想法吗?

标签: javascriptvariablesconditional-statements

解决方案


您可以使用带有数组的函数来获取值并进行检查。

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

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

图案

x = 1 || 2

返回第一个值 1 与逻辑 OR||的组合。这不是检查值的适当方法。


推荐阅读