2015-02-12 55 views
0

一个if块我要检查替代多个或语句在Javascript

if(x == "An" || x == "Apple" || x == "A" || x == "Day" || x == "Keeps" || x == "The"....and so on){ 
     return true; 
} 
else{ 
    return false; 
} 

有没有更好的方式来写大量的||条件if声明?

+0

'switch'语句将更加结构化,并且保持数组中比较的目标字符串会更整齐。 – slugster 2015-02-12 00:40:05

回答

2
matches = ["An", "Apple", "A", "Day"]; 
if (matches.indexOf(x) > -1){ 
    return true; 
} else{ 
    return false; 
} 
3

您可以在值存储在一个数组,然后检查是否x是值的阵列中使用.indexOf()

Example Here

var values = ["An", "Apple", "A", "Day"]; 

if (values.indexOf(x) !== -1) { 
    return true; 
} else { 
    return false; 
} 
-1

我没有Java编码器,所以可能存在语法错误,但我使用了我在VB中会做的概念,然后应用了我使用Google叔叔发现的语法。

string[] SearchTerm = { "An", "Apple", "A","Day","Keeps","The" } 
for(String str : SearchTerm){ 
    if(x==SearchTerm[i]){ 
     return true; 
     break; 
    } 
    else{ 
     return false; 
    } 
} 
0

不要做if x then true else false简单地做return x。所以:

var values = [...]; 
return values.indexOf(x) > -1; 
+1

请向OP(以及SO的未来访客)解释为什么你做了你所做的事情。 – 2015-02-13 17:18:04