在JavaScript if语句中检查一个变量到不同数字的最好方法

best way for check one variable to different numbers in JavaScript if statements

本文关键字:变量 数字 方法 一个 语句 if JavaScript 检查      更新时间:2023-09-26

我想检查随机变量是否等于一些数字做一些事情

例如

我有16个数字我想检查它们是否等于随机数

var randomNum = Math.floor(Math.random() * (192 - 1+ 1) + 1)
if (randomNum == 1 ||  randomNum == 24 ||  randomNum == 25 ||  randomNum == 48 ||  randomNum == 49 ||  randomNum == 72 ||  randomNum == 73  ||  randomNum == 96 ||  randomNum == 97 ||  randomNum == 120 ||  randomNum == 121 ||  randomNum == 144 ||  randomNum == 145 ||  randomNum == 168 ||  randomNum == 169 )
{
    blnRand=true;
}
else
{
    blnRand=false;
}

这是检查变量的一种很糟糕的方式我想要一个像这样的短代码:

if (randomNum == 1,24,25,48,49,72,73,96,97,120,121,144,145,168,169)
   blnRand=true;
else
   blnRand=false;

但不工作太,如何编写简短的代码为if语句在这里

"最佳"是主观的,很大程度上取决于你如何使用它;您有几个选择:

  1. A switch语句:

    switch (randomNum) {
        case 1:
        case 24:
        case 25:
        //...
           blnRand = true;
           break;
        default:
           blnRand = false;
           break;
    }
    
  2. 数组:
  3. var answers = [1, 24, 25/*...*/];
    blnRand = answers.indexOf(randomNum) !== -1;
    
  4. 查找对象:

    var answers = {
        1: true,
        24: true,
        25: true,
        // ...
    };
    blnRand = answers[randomNum] || false;
    
  5. 查找Set(仅限ES6及更高版本):

    var answers = new Set([1, 24, 25/*...*/]);
    blnRand = answers.has(randomNum);