Is there a way in Javascript to compare one integer with another through switch case structures without using if statements?
E.g.
switch(integer) {
You can do some math manipulations.
switch(Math.ceil(integer/10)) {
case 1: // Integer is between 1-10
break;
case 2: // Integer is between 11-20
break;
case 3: // Integer is between 21-30
break;
}
As stated in my comment, you can't do that. However, you could define an inRange
function:
function inRange(x, min, max) {
return min <= x && x <= max;
}
and use it together with if - else if
. That should make it quite easy to read:
if(inRange(integer, 1, 10)) {
}
else if(inRange(integer, 11, 20)) {
}
//...
Posting for "cool" syntax :P
if( integer in range(0, 10 ) ) {
}
else if ( integer in range( 11, 20 ) ) {
}
else if ( integer in range( 21, 30 ) ) {
}
function range( min, max ){
var o = {}, i ;
for( i = min; i <= max; ++i ) {
o[i] = !0;
}
return o;
}
There is a way, yes. I'm pretty sure I'd use an if/else structure in my own code, but if you're keen to use a switch the following will work:
switch(true) {
case integer >= 1 && integer <= 10:
// 1-10
break;
case integer >= 11 && integer <= 20:
// 11-20
break;
case integer >= 21 && integer <= 30:
// 21-30
break;
}
Of course if you wanted to avoid having to code >= && <=
on every case you could define your own isInRange(num,min,max)
type function to return a boolean and then say:
switch (true) {
case isInRange(integer,1,10):
// 1-10
break;
// etc
}