从 if else 转换为 switch 语句

2024-01-21

我有以下 if、else if、else 构造,我只是好奇如何将此类构造转换为 switch 语句。

var emailSubject = email.subject.toLowerCase(); 
if(emailSubject.indexOf("account request") >= 0){
     //do acct req
}else if(emailSubject.indexOf("accounts pending removal for") >= 0){
     //do account removal 
}else if(emailSubject.indexOf("listserv application") >= 0){
     //do listserv app 
}else if(emailSubject.indexOf("student organization webmaster transfer request") >= 0){
     //do webmaster xfer 
}else{
     //do default 

} 

我的想法是,但我认为这是不正确的:

switch(emailSubject){
    case this.indexOf("account request"):
       //do acct request 
       break;
    default:
       //do default 
}

Or

switch(0){
   case emailSubject.indexOf("accounts pending removal"):
     //process account pending removal 
     break;
   default:
     //do default behavior 
}

您的示例代码不能轻松地转换为大多数语言中的 switch 语句,也不应该这样做。switch用于将单个变量与一系列常量值进行比较,而您的逻辑需要与非常量值进行比较,而没有变量可以与它们进行比较。if/else if是适合您的情况的正确结构。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 if else 转换为 switch 语句 的相关文章

随机推荐

  • 特定值的固定颜色

    我正在尝试制作温度图 一切正常 但我不知道如何拥有固定的调色板 其实我有这个 rgb palette lt colorRampPalette c blue green yellow orange red space Lab image pl
  • 如何在java中改变我的框架?

    假设有一个按钮 如果您单击该按钮 则会出现一个新框架 依此类推 The setVisible true 函数用于显示框架 创建所需框架的对象并调用此函数 像这样的东西 The applications first or the main f
  • 打印 Mnesia 表的最佳方式

    我尝试了这个代码片段 print next Current gt case mnesia dirty next muppet Current of end of table gt io format n ok Next gt Muppet
  • 缺少 HttpClient 的依赖项

    我在 Java 桌面应用程序中使用 HttpClient 我已经添加httpclient 4 0 1 jar and httpmime 4 0 1 jar到构建路径 但我收到错误 无法解析类型 org apache http HttpRes
  • 使用标识符或 url 获取 Facebook 群组 ID

    我想通过使用 URL 或特定标识符来获取 Facebook 群组 ID For ex http www facebook com groups chennaifoodies http www facebook com groups chen
  • $.ajax仅在放置alert()时才起作用

    我尝试将内容加载到之前使用 AJAX 加载的内容中 我把代码 使用负载 jQuery contentpage on submit loginform my function contentpage load logincheck jsp a
  • 解析模型后,Redland RDF 中 RDF 节点的生命周期?

    我正在解析 RDF model 使用librdf parser parse string into model 然后我保留librdf model但释放librdf parser 在我看来 模型中的节点似乎也消失了 那么一生会做什么雷德兰R
  • 不使用 webpackJsonp 编译 Webpack typescript

    是否可以使用webpack进行打包而不使用webpack模块加载 我有一个可以使用 webpack 的所有内容的应用程序 在这个应用程序旁边我有一个小的打字稿文件test ts应该被编译 缩小等 但是输出应该是一个简单的js文件 没有被包装
  • iPhone应用程序启动时间指南[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 请指出 iPhone 应用程序启动时间指南 我发现有大约 24 秒的硬性限制 如果应用程序当时未启动
  • 读取EDI格式文件

    我是 EDI 新手 我有一个问题 我读到 通过查看 ISA 行的最后 3 个字符 您可以获得有关 EDI 格式的大部分信息 如果每个 EDI 都使用换行符来分隔实体 那么这很好 但我发现许多都是单行文件 其中使用任意数量的字符作为换行符 我
  • 使用 pandas apply 时的异常处理

    我可以使用 series str extract 从 pandas 系列中提取子字符串 ds pd Series 1A apple 1B pear 3C orange grape ds str extract d 1 expand Fals
  • Broom.mixed exp 模型预测

    我想请求一些帮助来绘制我的模型的预测值以及 lmer 估计生成的方程 所以 我得到的数据是不同老鼠在不同日期的质量体积 每只老鼠都有不同的时间点来测量该体积 那么 我使用的模型是 m1 lt lmer lVolume Country Day
  • AWS Lambda - NAT 网关互联网访问导致超时

    我有一个 AWS Lambda 函数 检查 Redis Elasticache 实例 如果在缓存中未找到该项目 则转至 Google Places API 服务 Redis 实例位于私有子网 因此 为了获取它 我添加了 VPC 和实例所在的
  • Android:ping:icmp 打开套接字:不允许操作

    是否可以在没有 root 访问权限的情况下在 Android 4 3 上执行 ping 有些人建议 sudo chmod u s system bin ping http ben goodacre name tech Ping icmp o
  • @media Chrome 下打印文字阴影

    当我添加 css 规则时 文字阴影 对于未显示在其中的文本 媒体打印 另存为PDF 并且它不适用于特殊情况Chrome 它在 IE11 下工作得很好 但在 Chrome 下 不行 这让我非常非常失望 这是简单的文本阴影示例 item tex
  • 仅在添加预先存在的数据后才始终删除闪亮的 CRUD 应用程序中的第一行

    我被困住了 需要帮助 我正在按照这个要点工作https gist github com gluc d39cea3d11f03542970b https gist github com gluc d39cea3d11f03542970b 基本
  • 如何在 C++ 中创建类对象的向量?

    我正在尝试使用 C 中的向量创建一个简单的堆栈 这是代码 include
  • 在powershell中将Arraylist转换为字符串

    我正在尝试从变量中 grep 一些数据 Select String inputObject patternstring Pattern regex AllMatches Matches Value OutVariable outputVal
  • 故事板和 Segue - 传递数据我做得好吗?

    我正在使用情节提要和转场 我想从 联系人列表 tableView 切换到 个人资料视图 ScrollView 三个问题 这是最好的方法 更干净和漂亮 吗 为什么 当我这样做时 ProfileViewController aProfileVi
  • 从 if else 转换为 switch 语句

    我有以下 if else if else 构造 我只是好奇如何将此类构造转换为 switch 语句 var emailSubject email subject toLowerCase if emailSubject indexOf acc