Javascript - ввод регистра переключателя на основе возвращаемого значения функции - PullRequest
0 голосов
/ 05 апреля 2020
switch (buttonValue) {
  case '8':
    // ...
    return
  case specialCase(buttonValue):
    // having trouble getting here
}

const specialCase = (buttonValue) => buttonValue > '4' && buttonValue !== '8'

Как ввести блок specialCase в инструкции switch? Если, например, buttonValue = 7, функция specialCase() возвращает true, но я никогда не вхожу в этот блок case.

У меня есть необходимость абстрагировать logi c в отдельный specialCase() функция, так как некоторые условия, которые я проверяю, являются сложными. По сути, я пытаюсь избегать оператора case, который выглядит как :

case buttonValue > '4' && buttonValue !== '8' && buttonValue < '19' && .... etc

Я просто неправильно форматирую синтаксис регистра или вы не можете использовать возвращаемое значение функции для войти в дело?

1 Ответ

0 голосов
/ 05 апреля 2020

Нет ничего плохого в выражении case. Просто переместите свою функцию до switch.

Кроме того, как кто-то упоминал в комментариях, переключатель - это не true / false. Чтобы сопоставить case, вам нужно вернуть значение регистра в вашей функции, а не просто true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...