usted podría intentar abusar de la caída del interruptor a través del comportamiento
var x = 5;
switch (x) {
case 1: case 2: case 3: case 4: ...
break;
case 13: case 14: case 15: ...
break;
...
}
que es muy prolijo
o usted podría probar este
function checkRange(x, n, m) {
if (x >= n && x <= m) { return x; }
else { return !x; }
}
var x = 5;
switch (x) {
case checkRange(x, 1, 12):
//do something
break;
case checkRange(x, 13, 19):
...
}
esto se consigue el comportamiento que te gustaría La razón por la que devuelvo !x
en else de checkRange es para evitar el problema de cuando pasa undefined
en la declaración de cambio. si su función devuelve undefined
(como lo hace el ejemplo de jdk) y pasa undefined
en el interruptor, entonces se ejecutará el primer caso. !x
se garantiza que no es igual a x
bajo ninguna prueba de igualdad, que es cómo la instrucción switch elige qué caso ejecutar.
posible duplicado de [¿Cómo puedo usar rangos en una declaración de mayúsculas y minúsculas usando JavaScript?] (Http://stackoverflow.com/questions/17145723/how-can-i-use-ranges-in-a-switch- case-statement-using-javascript) – Helen