如何使用具有多个值的逻辑或运算符?
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" )
}
一个很好的模式是创建一个 valid
或 accepted
值的数组,并使用 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;
}
如何在使用多个 or 运算符时简化代码。 我有一个从 0 到 6 的数字列表,用逻辑 or.Is 分隔,有什么办法可以简化它吗?
if (filteredMnth === 'mnth') {
return (new Date(exp?.date).getMonth().toString() === "0" || "1" || "2" || "3" || "4" || "5" || "6" )
}
一个很好的模式是创建一个 valid
或 accepted
值的数组,并使用 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;
}