不要对我投反对票。这不是重复的问题。
我有一个二维数组,其中包含三个范围:
ranges = [
[1,4],
[6,10],
[15,20]
]
我想检查数字是否在范围之一内。
例如,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;
}
我有两个问题:
(1)是否有比编写此笨拙代码更快的方法?
(2)如果range数组的大小未知(不是固定的),如何检查数字?
您可以使用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));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句