如何在Javascript中将数字与一系列数字进行比较?

时间:2012-01-20 16:27:07

标签: javascript

我想将一系列数字与单个数字进行比较,基本上就这样简单来说:

if X through Y equals Z, then do {}

在Javascript中执行类似操作的正确方法是什么?

澄清

我想检查X and Y之间的任何数字是否等于Z

修改

我不确定为什么选票下降,我有一个合理的问题。

7 个答案:

答案 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)

我不确定我是否完全理解您的问题。 我制作了一个函数,将数字 nminmax 之间的数字范围进行比较。此函数返回一个整数 r,从 1 到 5

  • n 小于 minr = 1
  • n 等于 minr = 2
  • n 介于 minmax 之间,r = 3
  • n 等于 maxr = 4
  • n 大于 maxr = 5
function compareToRange(n,min,max){
var r=((n<min)*1+(n==min)*2+((n>min)&&(n<max))*3+(n==max)*4+(n>max)*5);
}