JS Case Switches 应该如何格式化?

Posted

技术标签:

【中文标题】JS Case Switches 应该如何格式化?【英文标题】:How exactly are JS Case Switches supposed to be formatted? 【发布时间】:2017-11-28 15:59:42 【问题描述】:

所以几天来,我一直在使用 Node.js 为我的服务器开发一个 Discord 机器人,并且对 JS 来说是全新的。我正在尝试将一些代码从 Magic 8 Ball 中完成的教程模型转换为 JS 以实现为函数(只是随机数和大小写切换)。

这是来自 C# 项目:

    switch (random.Next(4))
                                                
                                                case 0:
                                                    Console.WriteLine("YES");
                                                    speechSynthesizer.Speak("Yes");
                                                    break;
                                                case 1:
                                                    Console.WriteLine("NO");
                                                    speechSynthesizer.Speak("No");
                                                    break;
                                                case 2:
                                                    Console.WriteLine("HELL NO");
                                                    speechSynthesizer.Speak("Hell no");
                                                    break;
                                                case 3:
                                                    speechSynthesizer.Speak("Hell yes");
                                                    Console.WriteLine("HELL YES");
                                                    break;
                                                

这就是我想要实现的:

    switch( Math.random.Next(4)) 
          case 0:
          msg.channel.send('Yes');
          break;
          case 1:
          msg.channel.send('No');
          break;
          case 2:
          msg.channel.send('Hell yes!');
          break;
          case 3:
          msg.channel.send('Hell No!');
          break;
      

我实际上是在尝试添加一个可以发送“Magic 8 Ball”的部分,它会返回 Yes/No/Hell Yes/Hell No。

编辑: 所以我听从了评论的建议,并在每个实例中将“大小写”切换为所有小写。我现在收到的错误是数学未定义。另一篇文章只是建议将数学转换为数学。 next 不是函数。

【问题讨论】:

case 应为小写:developer.mozilla.org/en/docs/Web/javascript/Reference/… 它是在哪里定义的? 【参考方案1】:

如果您的问题是生成一个随机 int 以在您的交换机中使用,您首先需要知道如何生成一个伪随机 int。

Math.random 在 [0, 1) 范围内生成一个浮点数

因此,您需要取该值,将其乘以您的最大值,然后将其取整以将其转换为整数。

Math.floor(Math.random() * max)

您的最终代码如下所示:

switch(Math.floor(Math.random() * 4)))   // 4 is maximum n of options
      case 0:
          msg.channel.send('Yes');
          break;
      case 1:
          msg.channel.send('No');
          break;
      case 2:
          msg.channel.send('Hell yes!');
          break;
      case 3:
          msg.channel.send('Hell No!');
          break;
  

【讨论】:

以上是关于JS Case Switches 应该如何格式化?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js - Mongoose - 在这种情况下,我应该如何分配多个多对一关系?

如何在 discord.js 中创建 case 语句

js显示yyyy年mm日dd天 星期几 的格式日期

JS 流程控制

js关于返回星期及日期格式的方法

vue中如何格式化数据成图标?