我想将一系列数字与单个数字进行比较,基本上就这样简单来说:
if X through Y equals Z, then do {}
在Javascript中执行类似操作的正确方法是什么?
澄清
我想检查X and Y
之间的任何数字是否等于Z
修改
我不确定为什么选票下降,我有一个合理的问题。
答案 0 :(得分:8)
范围不等于数字,是指数字是否在范围内?
if (1 <= Z && Z <= 25 ) {
foo();
}
答案 1 :(得分:2)
var arr = [...];
var compareRange = function(arr, x, y, z){
for(var i=x; i<=y; i++){
if(arr[i] != z){
return false;
}
}
return true;
};
答案 2 :(得分:2)
如果您想确定<{1}}范围内的Z
是 ,那么您可以这样做:
[X, Y]
否则,范围不能等于数字。
答案 3 :(得分:2)
检查元素1到3是否都是1:
var arr = [0, 1, 1, 1, 2];
var allOne = arr.slice(1, 4).filter(
function(val) { return val !== 1; }).length === 0;
修改强>
更好,感谢@am not i am
var arr = [0, 1, 1, 1, 2];
var allOne = arr.slice(1, 4).every(function (val) { return val === 1; });
答案 4 :(得分:0)
首先是范围函数:
function range(a,b){
var r = [a];
for(var i=a;i<=b;i++){
r.push(i);
}
return r;
}
现在使用该功能并进行比较:
var a = range(1,6); // Range
var z = 7;
if(a.indexOf(z) > -1){
// Collision !!!
}else{
// No collision, I suppose...
}
答案 5 :(得分:0)
检查x是否在a和b之间:
if (a<=x === x<=b)
// do stuff
答案 6 :(得分:0)
我不确定我是否完全理解您的问题。
我制作了一个函数,将数字 n
与 min
和 max
之间的数字范围进行比较。此函数返回一个整数 r
,从 1 到 5
n
小于 min
,r
= 1n
等于 min
,r
= 2n
介于 min
和 max
之间,r
= 3n
等于 max
,r
= 4n
大于 max
,r
= 5function compareToRange(n,min,max){
var r=((n<min)*1+(n==min)*2+((n>min)&&(n<max))*3+(n==max)*4+(n>max)*5);
}