确定一个数组是否包含一个值

这个问题在这里已经有了答案:

  • 如何检查数组是否包含JavaScript中的对象? 40个答案

  • var contains = function(needle) {
        // Per spec, the way to identify NaN is that it is not equal to itself
        var findNaN = needle !== needle;
        var indexOf;
    
        if(!findNaN && typeof Array.prototype.indexOf === 'function') {
            indexOf = Array.prototype.indexOf;
        } else {
            indexOf = function(needle) {
                var i = -1, index = -1;
    
                for(i = 0; i < this.length; i++) {
                    var item = this[i];
    
                    if((findNaN && item !== item) || item === needle) {
                        index = i;
                        break;
                    }
                }
    
                return index;
            };
        }
    
        return indexOf.call(this, needle) > -1;
    };
    

    你可以像这样使用它:

    var myArray = [0,1,2],
        needle = 1,
        index = contains.call(myArray, needle); // true
    

    CodePen验证/使用


    jQuery有一个实用的功能:

    $.inArray(value, array)
    

    返回arrayvalue索引。 如果array不包含value则返回-1

    另请参见如何检查数组是否包含JavaScript中的对象?


    这通常是indexOf()方法的用途。 你会说:

    return arrValues.indexOf('Sam') > -1
    
    链接地址: http://www.djcxy.com/p/9569.html

    上一篇: Determine whether an array contains a value

    下一篇: jQuery if checkbox is checked