2015-02-12 58 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