zoukankan      html  css  js  c++  java
  • 判断某个值是否在某数组内的方法

    判断某个值是否在某数组内的方法如下:

    1.jQuery.inArray( value, array [, fromIndex ] )  ------  fromIndex( 数组索引值,表示从哪里在开始查找。默认值是0 )

       描述:在数组中查找指定值并返回它的索引(如果没有找到,则返回-1)

    inArray: function( elem, arr, i ) {
        var len;
        if ( arr ) {
            if ( indexOf ) {
                return indexOf.call( arr, elem, i );
            }
            len = arr.length;
            i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
            for ( ; i < len; i++ ) {
                // Skip accessing in sparse arrays
                if ( i in arr && arr[ i ] === elem ) {
                    return i;
                }
            }
        }
        return -1;
    },

    $.inArray("b",["a","b","abc"])  ------   1
    $.inArray("c",["a","b","abc"])  ------   -1

    2.循环操作

    function in_array(elem, arr) {
      var i = 0, n = arr.length;
      for (;i < n;++i)
        if (arr[i] === elem)
          return true;
      return false;
    }

    in_array("b",["a","b","abc"])  ------   true
    in_array("c",["a","b","abc"])  ------   false

    3.正则操作

    Array.prototype.in_array=function(elem){
        var r=new RegExp(','+elem+',');
         return r.test(','+this.join()+',');
    };

    [1,"d","abd","c"].in_array("1")  ------   true
    [1,"d","abd","c"].in_array("ddd")  ------   false

    4.indexOf()  ------  存在兼容性,IE中Array并没有这个方法

    function in_array(elem,arr){ 
         var str=','+arr.join(",")+","; 
         return str.indexOf(","+elem+",") != -1; 
    }

    in_array("b",["a","b","abc"])  ------   true
    in_array("c",["a","b","abc"])  ------   false

    关于function in_array()和Array.prototype.in_array=function(){}这俩种形式都可以,一个是函数,另一个是类方法的扩展。

    如果大家有更好的方法或者其他方法,可以留言发表自己的看法。

  • 相关阅读:
    Java杂项
    JFrog Artifactory
    TestNG+Selenium
    Linux杂项
    Java
    Spring Boot
    学习ThinkPHP第一天
    linux下文件解压
    php中require_once与include_once的区别
    ubuntu下的wps office for linux
  • 原文地址:https://www.cnblogs.com/wjmm/p/8119285.html
Copyright © 2011-2022 走看看