2016-09-01 29 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