【发布时间】:2022-01-07 05:44:14
【问题描述】:
我正在检查一个变量,比如foo,是否与多个值相等。例如,
if( foo == 1 || foo == 3 || foo == 12 ) {
// ...
}
关键在于,对于这样一个微不足道的任务,它的代码相当多。我想出了以下几点:
if( foo in {1: 1, 3: 1, 12: 1} ) {
// ...
}
但这并不完全吸引我,因为我必须为对象中的项目赋予冗余值。
有没有人知道对多个值进行相等性检查的体面方法?
【问题讨论】:
-
我认为在决定这样的事情时需要考虑更大的背景,因为了解为什么进行此类比较非常重要。
-
好吧,在我正在创建的游戏中,我正在检查键盘代码以确定应该调用什么函数。在不同的浏览器中,一个键看起来有不同的键码,因此需要与多个值进行比较。
-
检查多个方法的性能测试,逻辑运算符获胜runkit.com/pramendra/58cad911146c1c00147f8d8d
-
这是一个常见的重复目标,用于询问为什么
variable === value1 || value2不起作用。对于那些想知道为什么的人:||和&&与short-circuit evaluation 一起使用;每个操作数是truthy or falsy。x === 1 || 2表示(x === 1) || (2)并且是true或2,因为||导致第一个真值或最后一个假值操作数,而x === "a" || "b"是true或"b"。由于true、2和"b"都是真值,因此将它们置于if条件中等效于if(true)。只需使用[ "a", "b" ].includes(x)。
标签: javascript