从if else转换为switch语句

Chr*_*ris 3 javascript if-statement switch-statement

我有以下if,否则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 

} 
Run Code Online (Sandbox Code Playgroud)

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

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

要么

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

JSB*_*ոգչ 6

您的示例代码在大多数语言中都不能轻易转换为switch语句,也不应该.switch用于将单个变量与一系列常量值进行比较,而您的逻辑需要与非常量值进行比较,没有变量可用于比较它们.if/ else if是您案件的正确结构.