链式逻辑或比较
为什么不这项工作:链式逻辑或比较
if (x != (a || b || c)) {
doStuff();
}
这意味着要检查x是否不等于A或B或C。
编辑:我将如何实现检查x是否不等于a或b或c?
编辑:好吧,它是重复的。我现在该做什么,即使在意识到我的错误之后,还是会减分? :P
像你想只是为了使用倍数值:!!!
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);
您需要更好地理解逗号运算符的工作原理 – charlietfl
无论数值如何,这总是会返回'c'。这可能有所帮助:https://stackoverflow.com/questions/3561043/what-does-a-comma-do-in-javascript-expressions – Rajesh
对不起,我的第一个答案,当我把c === x陷入陷阱并运行。哈哈哈。 – joelbarbosa
如果(X应该是'== ||一个== X || b X = = c)'。你的表达意味着什么,值可以是'a','b'或'c',这个值不应该等于'x'。作为替代方案,您可以尝试'[a,b,c] .indexOf(x) Rajesh
'(a || b || c)'将返回第一个真值变量,并在'!='之前求值 – charlietfl
' [a,b,c] .indexOf(x)