trouvaille
trouvaille

Reputation: 5

How to use logical or operator with multiple values?

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

Answers (3)

Alexander Matev
Alexander Matev

Reputation: 41

For this specific case you can do ->

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

Upvotes: 1

Zainuddin
Zainuddin

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

Kostas Minaidis
Kostas Minaidis

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

Related Questions