2016-09-01 67 views
-2

我想讓一個提示窗口詢問代碼,我已經得到了這個部分。 有50多人訪問此頁面,我想給每個人一個不同的代碼。Javascript if if

if (var1 OR var2 OR var3 OR var4) //i want to be able to add as many 'var*; as I want here. Anywhere from 2 - lets say 50. 
{ 
    access = true 
} 
else 
{ 
    access = false 
} 
+5

不,你真正想要的是一組值。 – Bergi

+1

你意識到這不安全? – epascarello

+2

順便說一句,如果這不僅僅是一個學習練習,那麼不要在客戶端進行身份驗證/授權。 – Bergi

回答

6

您應該使用動態選項的。

var options = ["var1", "var2", "var3"]; 

var access = options.indexOf(comparedValue) > -1; 
+2

'var access = options.indexOf(comparisonValue)> -1;'爲什麼要用if。 :) – epascarello

+0

ES6:'var access = options.includes(comparisonValue'':-) – Bergi

+0

是的,我過度複雜它,謝謝。 @Bergi我假設他不熟悉ES6的功能,並希望擁有[完整的瀏覽器支持](http://caniuse.com/#search=includes)。順便說一句:已經有[回答](http://stackoverflow.com/a/39270444/6475535)使用'includes'。 –

4

您可以使用Array#some檢查每個元素的單一真相。

if (my_vars.some(x => x)) { 
    // ... 
} 
+0

你的意思是將某個值與'x'比較,對吧? – Bergi

+0

我的意思是像在問題檢查'var1 || var2 || var3 ...''var1,var2,var3,...]' –

+0

應該是'(my_vars.some(x => x == user_var))' – Qwerty

3

使用Array.prototype.includes()

const access = ['var1', 'var2', 'var3'].includes(someVar) 

如果someVar等於任何數組的值('var1''var2''var3')的,access將是true;否則會是false