Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Разумеется, можно написать скрипт который автоматически сгенерирует такой switch не только для 4-х но и для любого количества условий.
switch (str) {
case "abc": // 1
case "def": // 2
case "hjk": // 3
case "qwe": // 4
case "xzy": // 5
default: // 6
}switch (
str < "qwe"
? str < "def"
? (str == "hjk" ? 1 : 0)
: (str == "def" ? 2 : 0)
: str == "qwe"
? 4
: (str == "xyz" ? 5 : 0)
)
{
case 1: // 1
case 2: // 2
case 3: // 3
case 4: // 4
case 5: // 5
default: // 6
}Гарантировано не более 3 сравнений в худшем случае.Позвольте сразу вопрос: одна и та же ли конструкция будет работать со всеми типами переменных?
И наконец до моего твердолобия дошло что-же оказывается вы хотите:
Если не ошибаюсь, то вы представили, что я намереваюсь вкладывать мой свич в какую-то обертку, правильно? И вот эту-то реализацию ждет нормально(т.е. объектно) думающее сообщество?
Еще один «switch для строк» — но не только для строк и не только «switch»