根据值列表检查变量相等性

2022-08-30 01:51:29

我正在检查一个变量,比如说,是否与许多值相等。例如foo

if( foo == 1 || foo == 3 || foo == 12 ) {
    // ...
}

关键是,对于这样一个微不足道的任务来说,它更像是代码。我想出了以下几点:

if( foo in {1: 1, 3: 1, 12: 1} ) {
    // ...
}

但这也不能完全吸引我,因为我必须为对象中的项目提供冗余值。

有谁知道对多个值进行相等检查的体面方法吗?


答案 1

您可以使用数组和索引:

if ([1,3,12].indexOf(foo) > -1)

答案 2

在 ECMA2016 中,您可以使用包含方法。这是我见过的最干净的方式。(所有主流浏览器都支持)

if([1,3,12].includes(foo)) {
    // ...
}