检查整数是否在其中一个范围内

VIC*_*TOR 1 javascript

不要打赌我了.这不是一个重复的问题.

我有一个2D数组,其中包含三个范围:

ranges = [
           [1,4],
           [6,10],
           [15,20]
          ]
Run Code Online (Sandbox Code Playgroud)

我想检查一个数字是否在其中一个范围内.

例如,7它是真实的[6,10]

我试着这样写:

if ( (num >= ranges[0][0] && num =< ranges[0][1]) || 
     (num >= ranges[1][0] && num =< ranges[1][1]) || 
      (num >= ranges[2][0] && num =< ranges[2][1])) {
   return True;
}
else {
   return false;
}
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

(1)有没有更快的方法而不是写这个笨拙的代码?

(2)如果范围数组的大小未知(不固定),我该如何检查数字?

Nin*_*olz 6

您可以使用Array#some并检查间隔.

some()方法测试数组中的某个元素是否通过了由提供的函数实现的测试.

function checkAgainst(value) {
    return ranges.some(function (a) {
        return value >= a[0] && value <= a[1];
    });
}

var ranges = [[1, 4], [6, 10], [15, 20]];
  
console.log(checkAgainst(3));
console.log(checkAgainst(5));
console.log(checkAgainst(300));
Run Code Online (Sandbox Code Playgroud)