Search code examples
javascriptconditional-operator

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.


Solution

  • 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;
    }