Вы не сравниваете правильные значения в своем операторе switch.
Давайте представим, что используя некоторые значения, мы вызываем canDrink
с параметром 17
.
function canDrink(el) { //Receives 17
switch (el) { //Handles 17 as main value
case el >= 18: // 17 >= 18 is false, but true===17 is false
return 'Drink'
break;
case el < 18: // 17<18 is true, but false===17 is false
return 'Wait'
break;
default: // So, none of the conditions matches default executes.
return 'Try again!'
}
}
Как вы должны адаптировать это?
function canDrink(el) { // el = 17
switch (true) { // We use true as our main value
case el >= 18: // 17>=18 is false, so our main value true === false, not executed
return 'Drink'
break;
case el < 18: // 17<18 is true, so true===true, executes this.
return 'Wait'
break;
default:// No need for default.
return 'Try again!'
}
}
Вы можете проверить этот рабочий пример .