Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple Ternary Operators

I need a bit of syntax help with a ternary operator which will help me to put the correct marker icons on to my good map. I have three areas 0, 1 and 2 which have unique icons 0, 1 and 2.

I used to have just two areas so this ternary operator worked fine;

var icon = (area == 1) ? icon1 : icon0; 

Now I need to add an additional third icon (icon2) for area2.

I've tried various methods but just can't seem to get it right.

like image 383
Sam Avatar asked Oct 13 '11 16:10

Sam


People also ask

Can you have multiple ternary operators?

If condition2 is correct, then the output is Expression1. If it is incorrect, then the output is Expression2. In the above syntax, we can see how we can use more than one ternary operator in a single statement. Below is an example explaining how we can use 2 ternary operators in a single statement.

How do you perform multiple operations in a ternary operator?

You can use the comma operator to execute multiple expressions in place of a single expression: arr[i] % 2 === 0? (evenCount++, totalCount++) : (oddCount++, totalCount++); The result of the comma operator is the result of the last expression.

Can ternary operator have 3 conditions?

The conditional (ternary) operator is the only JavaScript operator that takes three operands: a condition followed by a question mark ( ? ), then an expression to execute if the condition is truthy followed by a colon ( : ), and finally the expression to execute if the condition is falsy.


1 Answers

The syntax would be:

var icon = (area == 1) ? icon1 : (area == 2) ? icon2 : icon0; 

But this is starting to get complicated. You may well be better off just creating a function to do this work instead:

var icon = getIcon(area);  function getIcon(area) {   if (area == 1) {      return icon1;    } else if (area == 2) {      return icon2;    }    return icon0; } 
like image 165
Justin Ethier Avatar answered Oct 15 '22 14:10

Justin Ethier