多条件/可变JavaScript转换语句?

问题描述

我正在使用JavaScript API编写discord机器人,但我不确定是否可以使用,但会带来巨大的优化。

现在现在,我要在我的机器人中添加一个Rock Paper Scissors迷你游戏,我需要将用户的猜测(聊天中发送的表情符号)与其自己的猜测(之间的随机数)进行比较0-2代表所选择的表情符号),现在我有一行if else

例如,代替

if(botGuess == 0 && msg.content.includes("/*unicode fist*/"){
  //tie
}

我把它放在Switch语句中……有点像这样?

switch(botGuess,msg){
   case botGuess = 0,msg.content.includes("/*unicode fist*/"):
     //tie
   break;
}

我只是想了一段时间,这有可能吗,如果可以的话,我做对了吗?截至目前,我对if else语句进行了修改,并切换到我上面所想到的高级switch语句可以使我省心。

编辑:感谢Simperfy,我找到了一种解决方法。我将两个变量都连接成一个字符串,并将它们都视为一个变量。

例如

var guesses = botGuess + "|" + msg.content;

switch(guesses){
  case guesses.contains("0" && "/*unicode_fist*/"):
    //tie
  break;
}

解决方法

switch语句只能支持单个数据单元。但是,您可以将两个数据单位合并为一个。在javascript中,您可以通过基本乘法来做到这一点:

switch (i + 1000 * j)
{
  case 1002: ... // i = 2,j = 1
  case 3004: ... // i = 4,j = 3
}

请注意,这要求i