如何使用具有多个值的逻辑或运算符?

How to use logical or operator with multiple values?

如何在使用多个 or 运算符时简化代码。 我有一个从 0 到 6 的数字列表,用逻辑 or.Is 分隔,有什么办法可以简化它吗?

if (filteredMnth === 'mnth') {
         
  return (new Date(exp?.date).getMonth().toString() === "0" || "1" || "2" || "3" || "4" || "5" || "6"   )

}

一个很好的模式是创建一个 validaccepted 值的数组,并使用 Array.prototype.includes 从用户输入中检查一个:

const validValues = [ 0, 1, 2 ];
const input = 2;

validValues.includes(input);
// => true

const input2 = 3;

validValues.includes(input2);
//=> false

正如@Robby Cornelissen 已经在评论中提到的,在你的情况下它确实没有任何意义,但我在这里包括这个模式来回答你问题的更通用版本。

由于您有多个值,因此您可以使用如下所示的 List 和 includes 方法

const validMonths = ["1", "2", ...]
const monthToCheck = new Date(exp?.date).getMonth().toString()
if(validMonths.includes(monthToCheck)){
    //Evaluates true if value exist
}

对于这种特定情况,您可以执行 ->

if (filteredMnth === 'mnth') {
  return new Date(exp?.date).getMonth() <= 6;
}