2017-10-21 191 views
-4

爲什麼不這項工作:鏈式邏輯或比較

if (x != (a || b || c)) { 
    doStuff(); 
} 

這意味着要檢查x是否不等於A或B或C。

編輯:我將如何實現檢查x是否不等於a或b或c?

編輯:好吧,它是重複的。我現在該做什麼,即使在意識到我的錯誤之後,還是會減分? :P

+2

如果(X應該是'== ||一個== X || b X = = c)'。你的表達意味着什麼,值可以是'a','b'或'c',這個值不應該等於'x'。作爲替代方案,您可以嘗試'[a,b,c] .indexOf(x)<0' – Rajesh

+0

'(a || b || c)'將返回第一個真值變量,並在'!='之前求值 – charlietfl

+0

' [a,b,c] .indexOf(x)<0' done:D –

回答

-2

像你想只是爲了使用倍數值:!!!


 
var x = 'x'; 
 
var a = 'a'; 
 
var b = 'b'; 
 
var c = 'c'; 
 

 
function doStuff() { 
 
    console.log(1) 
 
} 
 

 
// exemple 1 
 
if(x == a || x == b || x == c) { 
 
    doStuff(); 
 
} 
 

 
function isSameValue(element, index, array) { 
 
    return element === x; 
 
} 
 

 
// exemple 2 
 
if([a, b, c].some(isSameValue)) { 
 
    doStuff(); 
 
} 
 

 
// exemple 3 
 
[a, b, c].includes(x);

+1

您需要更好地理解逗號運算符的工作原理 – charlietfl

+1

無論數值如何,這總是會返回'c'。這可能有所幫助:https://stackoverflow.com/questions/3561043/what-does-a-comma-do-in-javascript-expressions – Rajesh

+0

對不起,我的第一個答案,當我把c === x陷入陷阱並運行。哈哈哈。 – joelbarbosa