zoukankan      html  css  js  c++  java
  • JS判断元素是否在数组内

    一、JQuery

    如果是用JQuery的话,可以用inArray()函数:

    jquery inarray()函数详解    jQuery.inArray()函数的返回值为Number类型
    jquery.inarray(value,array)   

    确定第一个参数在数组中的位置(如果没有找到则返回 -1 )。

    determine the index of the first parameter in the array (-1 if not found).
    返回值
    jquery
    参数
    value (any) : 用于在数组中查找是否存在
    array (array) : 待处理数组。

    用法为:

    $.inArray(value, array)  

    二、自己写函数

    function contains(arr, obj) {  
        var i = arr.length;  
        while (i--) {  
            if (arr[i] === obj) {  
                return true;  
            }  
        }  
        return false;  
    }  

    用法为:

    var arr = new Array(1, 2, 3);  
    contains(arr, 2);//返回true  
    contains(arr, 4);//返回false  

    三、给Array增加一个函数

    Array.prototype.contains = function (obj) {  
        var i = this.length;  
        while (i--) {  
            if (this[i] === obj) {  
                return true;  
            }  
        }  
        return false;  
    }  

    使用方法:

    [1, 2, 3].contains(2); //返回true  
    [1, 2, 3].contains('2'); //返回false 

    四、使用indexOf

    但是有个问题是IndexOf在某些IE版本中是不兼容的,可以用下面的方法:

    if (!Array.indexOf) {  
        Array.prototype.indexOf = function (obj) {  
            for (var i = 0; i < this.length; i++) {  
                if (this[i] == obj) {  
                    return i;  
                }  
            }  
            return -1;  
        }  
    }  

    先判断Array是否有indexOf方法,如果没有就扩展出此方法。

    所以上面代码要写在使用indexOf方法的代码之前:

    var arr = new Array('1', '2', '3');  
    if (!Array.indexOf) {  
        Array.prototype.indexOf = function (obj) {  
            for (var i = 0; i < this.length; i++) {  
                if (this[i] == obj) {  
                    return i;  
                }  
            }  
            return -1;  
        }  
    }  
    var index = arr.indexOf('1');//为index赋值为0  

    参考1:jumtre的专栏  JS判断元素是否在数组内

  • 相关阅读:
    JZOJ 3034. 【NOIP2012模拟10.17】独立集
    JZOJ 3035. 【NOIP2012模拟10.17】铁轨
    JZOJ 1259. 牛棚安排
    数位DP JZOJ 3316. 非回文数字
    JZOJ 3046. 游戏
    JZOJ 3013. 填充棋盘
    debian 安装oracle提供的java8
    java 汉字转拼音 PinYin4j
    debian ssh设置root权限登陆 Permission denied, please try again
    java并发下订单生成策略
  • 原文地址:https://www.cnblogs.com/wangfuyou/p/5853371.html
Copyright © 2011-2022 走看看