JavaScript. switch..case и диапазоны значений

В JS нет возможности написать что-то вида:

switch(value) {
	case 1..5: {
		// some code
		break;
	}
	case 6..10: {
		// some code
		break;
	}
	default: {
		// some code
		break;
	}
}

А если очень надо? Можно пойти от обратного:

switch(true) {
	case (value >= 1 && value <= 5): {
		// some code
		break;
	}
	case (value > 5 && value <= 10): {
		// some code
		break;
	}
	default: {
		// some code
		break;
	}
}

Получается, что value сможет попасть только в одну ветку case (так как диапазоны значений не пересекаются) и необходимый результат будет получен.

, , ,

5 комментариев
  1. Vasis сказал(а):

    Да много где нельзя делать такие чудеса… Проще пересчитать языки где такое можно.

  2. KronuS сказал(а):

    Мне не во многих языках приходилось это делать. А в JS на днях возникла ситуация с 12 «ветками» для значения переменной.

  3. Vasis сказал(а):

    Можно еще так делать —

    case 3:
    case 4:
    case 5:
    // some code
    break;
    case 6:
    case 7:
    case 8:
    // some code
    break;

  4. KronuS сказал(а):

    Можно.
    Но у меня диапазоны были вида 1000-2500, 2501-4700 и т.д. 🙂

  5. Vasis сказал(а):

    Тогда да) Через условия самый правильный путь)

Оставить комментарий

Top ↑ | Main page | Back