jquery检查数字是否在列表中

jquery check if number is in a list

本文关键字:列表 是否 检查 数字 jquery      更新时间:2023-09-26

我必须检查一个变量是否等于给定的数字。例如,我现在正在做这件事。

if (num == 1 || num == 3 || num == 4 || etc.) {
    // Do something
} else if (num == 2 || num == 7 || num == 11 || etc.) {
    // Do something
}

我想应该有一个更简单的方法。例如,每个if语句的所有数字的数组。

var array1 = [1,3,4,5,6,8,9,10 etc.]
var array2 = [2,7,11,12,13,14 etc.]

然后看看这个数字是否等于这些数组中的任何一个。但我不知道该怎么做。

indexOf()方法在数组中搜索指定项,并返回其位置。
 var array1 = [1,3,4,5,6,8,9,10];
 var a = array1.indexOf(46); //a = -1; if not found

如果需要支持没有.indexOf()的环境,可以实现MDN修复。

if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
        "use strict";
        if (this === void 0 || this === null) throw new TypeError();
        var t = Object(this);
        var len = t.length >>> 0;
        if (len === 0) return -1;
        var n = 0;
        if (arguments.length > 0) {
            n = Number(arguments[1]);
            if (n !== n) // shortcut for verifying if it's NaN
            n = 0;
            else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) n = (n > 0 || -1) * Math.floor(Math.abs(n));
        }
        if (n >= len) return -1;
        var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
        for (; k < len; k++) {
            if (k in t && t[k] === searchElement) return k;
        }
        return -1;
    };
}

由于您要的是jQuery,所以有.inArray()。如果找不到,则返回-1,否则为匹配元素的索引。

您不需要使用jQuery。这是一个名为indexOf:的内置函数

if ( arr.indexOf(item) !== -1 ) {
    // item is in array
}

为什么不做一个简单的for循环呢?

for(var i = 0; i < array1.length; i++)
{
  if(array[i] == num)
   {
     //     do something
     break;
   }
}

您可以使用inArray函数(http://api.jquery.com/jQuery.inArray/)

<script>var arr = [ 4, "Pete", 8, "John" ];
var $spans = $("span");
$spans.eq(0).text(jQuery.inArray("John", arr));
$spans.eq(1).text(jQuery.inArray(4, arr));
$spans.eq(2).text(jQuery.inArray("Karl", arr));
$spans.eq(3).text(jQuery.inArray("Pete", arr, 2));
</script>

输出:

"约翰"在3岁时被发现在0找到4"卡尔"没有找到,所以-1"Pete"在数组中,但不在索引2处或之后,因此-1

您可以在没有jQuery:的情况下完成此操作

if(array1.indexOf(num1) >= 0)//if -1, then not found