Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

263
Views
Switch/case using logic operators such as >= and &&

I have this code that first reads which position of a checkbox is checked and then executes several ifs. Then I thought I could make the code smaller if I used switch/case, while also portfolio-ing the command for later uses. The command was like this:

if (fsex[0].checked {
gender = 'man'
if (age >= 0 && age <= 10) {
img.setAttribute('src', 'male-baby.png')
} else if

I tried using switch by changing the below "gender" line to something like this:

switch (age) {
case (age >=0 && age <= 10):
img.setAttribute('src', 'male-baby.png')
break
case ...etc

This didn't work.

Then I tried with case >=0, which then the VSCode immediatly returns a sintax error "expression expected.

Is there a way I can use switch/case to this one? Or I should just stick with several if/ else ifs?

about 4 years ago · Santiago Gelvez
2 answers
Answer question

0

You can use this "trick":

const age = 14;

switch(true) 
{
  case age > 5 && age <= 10:
    console.log('bla 1');
  break;
  case age > 10 && age <= 20:
    console.log('bla 2');
  break;
  case age > 20 && age <= 30:
    console.log('bla 3');
  break;
}

about 4 years ago · Santiago Gelvez Report

0

Each case branch of a switch statement expects an expression, and the value of the expression will be compared to the initial argument. In this case, that means you are comparing age to either true or false (the result of the expression (age >= 0 && age <= 10). You can technically use switch (true) for this, but there isn't much value in doing so.

This said, there are other patterns that allow you to express what you are trying to do without a conditional with many branches. For example:

[
  { max: 10, callback: () => { img.setAttribute("src", "example.jpg") }, 
  { max: 15, callback: () => { ... },
  { max: 20, callback: () => { ... },
].find(({ max }) => max >= age)?.callback()

Or if you really don't care about others understanding the code in the future you can take advantage of consistent insertion-retrieval order:

const conditions = {
  10: () => { console.log("a") }, 
  15: () => { console.log("b") },
  Infinity: () => { console.log("c") },
}

Object.entries(conditions).find(([max]) => max >= age)?.[1]()
about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!