Reputation: 5
How to simplify the code when using multiple or operators. I have a list of numbers from 0 to 6 separated by logical or.Is there any way to simplify it?
if (filteredMnth === 'mnth') {
return (new Date(exp?.date).getMonth().toString() === "0" || "1" || "2" || "3" || "4" || "5" || "6" )
}
Upvotes: 0
Views: 643
Reputation: 41
For this specific case you can do ->
if (filteredMnth === 'mnth') {
return new Date(exp?.date).getMonth() <= 6;
}
Upvotes: 1
Reputation: 1
Since you are having multiple values you can make use of List and includes method as below
const validMonths = ["1", "2", ...]
const monthToCheck = new Date(exp?.date).getMonth().toString()
if(validMonths.includes(monthToCheck)){
//Evaluates true if value exist
}
Upvotes: 0
Reputation: 5546
A nice pattern for this, is to create an Array of valid
or accepted
values and use the Array.prototype.includes
to check for one from the user input:
const validValues = [ 0, 1, 2 ];
const input = 2;
validValues.includes(input);
// => true
const input2 = 3;
validValues.includes(input2);
//=> false
As @Robby Cornelissen already mentioned in the comment, in your case it really does not make any sense, but I'm including this pattern here to answer a more generic version of your question.
Upvotes: 0