简单地用Javascript编写或编写语句
假设我有一个if语句,里面有或表达式简单地用Javascript编写或编写语句,javascript,Javascript,假设我有一个if语句,里面有或表达式 if (cow == cow1 || cow == cow2) { //do something } 有没有更好的方法用更简单的方式写这篇文章? 我想象着这样的事情 if (cow == cow1 || cow2) { //do something } 但我想这是行不通的 不,那不行。由于运算符优先级,它被视为: if ((cow == cow1) || cow2)) 这不会将cow与cow2进行比较——如果第一次比较为假,它只会测试cow2是
if (cow == cow1 || cow == cow2) {
//do something
}
有没有更好的方法用更简单的方式写这篇文章?
我想象着这样的事情
if (cow == cow1 || cow2) {
//do something
}
但我想这是行不通的 不,那不行。由于运算符优先级,它被视为:
if ((cow == cow1) || cow2))
这不会将cow
与cow2
进行比较——如果第一次比较为假,它只会测试cow2
是否真实
要测试是否包含在集合中,可以使用数组和indexOf()
方法:
if ([cow1, cow2].indexOf(cow) != -1)
不,那不行。由于运算符优先级,它被视为:
if ((cow == cow1) || cow2))
这不会将cow
与cow2
进行比较——如果第一次比较为假,它只会测试cow2
是否真实
要测试是否包含在集合中,可以使用数组和indexOf()
方法:
if ([cow1, cow2].indexOf(cow) != -1)
在JS中不可能。最好的方法是使用
===
而不是=
@AndrewL。这是有效的JS,但不能解决这个问题。@nicael:变量名很难看,逻辑非常简单明了。所以我想OP应该更改变量名?无论哪种方式,这都是完全基于意见的,不是堆栈溢出的主题。[cow1,cow2]。包括(cow)
或[cow1,cow2]。indexOf(cow)!=-1
。在JS中不可能。最好的方法是使用===
而不是=
@AndrewL它是有效的JS,但不能解决这个问题。@nicael:变量名很难看,逻辑非常简单明了。所以我想OP应该更改变量名?无论哪种方式,这都是完全基于意见的,不是堆栈溢出的主题。[cow1,cow2]。包括(cow)
或[cow1,cow2]。indexOf(cow)!=-1
(cow==cow1 | | | cow2)
不等于(cow==(cow1 | | | cow2))
=
比|
绑得更紧。哎呀,我在想什么呢?现在更新答案。正如@xufox指出的,Array.prototype.includes也可以使用(但可能需要多填充)。(cow==cow1 | | | cow2)
并不等于(cow==(cow1 | | cow2))
=
比绑定得更紧密。哎哟,我在想什么呢?现在更新答案。正如@xufox指出的,Array.prototype.includes也可以使用(但可能需要多填充)。