si potrebbe provare abusando della caduta interruttore attraverso un comportamento
var x = 5;
switch (x) {
case 1: case 2: case 3: case 4: ...
break;
case 13: case 14: case 15: ...
break;
...
}
che è molto verboso
o si potrebbe provare questo
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):
...
}
questo si ottiene il comportamento che vorresti. La ragione per cui restituisco !x
nel resto di checkRange è per prevenire il problema di quando si passa undefined
nell'istruzione switch. se la funzione restituisce undefined
(come fa l'esempio di jdk) e si passa undefined
nello switch, quindi verrà eseguito il primo caso. !x
è garantito non uguale a x
in qualsiasi test di uguaglianza, che è come l'istruzione switch sceglie quale caso da eseguire.
possibile duplicato di [Come utilizzare gli intervalli in un'istruzione switch case utilizzando JavaScript?] (Http://stackoverflow.com/questions/17145723/how-can-i-use-ranges-in-a-switch- case-statement-using-javascript) – Helen