Javascript-根据函数的返回值输入Switch大小写

时间:2020-04-05 18:44:06

标签: javascript ecmascript-6

switch (buttonValue) {
  case '8':
    // ...
    return
  case specialCase(buttonValue):
    // having trouble getting here
}

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

如何在switch语句中输入specialCase块?例如,如果使用buttonValue = 7,则specialCase()函数将返回true,但我永远不会输入该case块。

由于我要检查的某些条件很复杂,因此我需要将逻辑抽象到单独的specialCase()函数中。基本上,我正在尝试避免使用类似

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

我只是错误地设置了大小写语法的格式,还是不能使用函数的返回值来输入大小写?

1 个答案:

答案 0 :(得分:0)

case中的表达式没有错。只需将功能移到switch之前即可。

此外,正如评论中提到的那样-切换不是true / false的事情。为了匹配case,您需要在函数中返回大小写值,而不仅仅是true