zoukankan      html  css  js  c++  java
  • 关于jQuery的inArray 方法介绍

    转自:http://www.jb51.net/article/28486.htm

    代码:

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>main</title>
    </head>
    <body>
    <script type="text/javascript" src="jquery-1.8.3.min.js"></script>
    <script>
    $(function() {
        var d = "1,3,43,23,54,67";
        var arr = d.split(',');
        alert($.inArray(3, arr) == -1);// true
        alert($.inArray("3", arr) == -1);// false
        var arr = eval('[' + d + ']');
        alert($.inArray(3, arr) > -1);// true
    });
    </script>
    </body>
    </html>

    jquery inarray()函数详解: 

    jquery.inarray(value,array)
    
    确定第一个参数在数组中的位置(如果没有找到则返回 -1 )。 
    
    determine the index of the first parameter in the array (-1 if not found). 
    返回值
    jquery 
    参数 
    value (any) : 用于在数组中查找是否存在 
    array (array) : 待处理数组。 

    代码:

    var testarr=[{"a":"0"},{"b":"1"},{"c":"2"}];
    alert($.inarray({"a":"0"},testarr));   
    说这个值总是返回-1;
    
    var obj = {'m' : '1'};
    var arr = [obj, '1', 2];
    alert($.inarray(obj, arr));
    这个返回值正常。

    这是对象是引用类型的缘故。

    引用类型的特性可以用一小段程序演示:
    代码如下:

    var obj = {"a" : 0};
    var obj1 = {"a" : 0};
    alert(obj == obj1);// false
    var obj = {"a" : 0};
    var obj1 = obj;
    alert(obj == obj1); // true

    为此我们看下jquery中inAarry函数的源码:

    /*@param elem 用于在数组中查找的项
    @param array 待查找的数组
    */
    inArray: function(elem, array) {
            //判断浏览器是否支持javascript1.6新增的array原生的indexOf
             if(array.indexOf) {
                 return array.indexOf(elem);
             }
             var i,
                 len = array.length;
             //按照array的长度进行遍查找
             for(i = 0; i < len; i++) {
                   if(array[i] === elem ) {
                         // 如果array[i]的元素和elem相同
                         return i;
                    }
             }
             // 没有找到的话就返回-1
             return -1;
    }

    注意"==="符号

  • 相关阅读:
    Android面试题目整理与解说(二)
    大学?做码农?做project师?
    图形学领域的关键算法及源代码链接
    假设在本地搭一个server和mysql数据库环境,假设使用java来訪问数据库
    [容斥原理] hdu 4135 Co-prime
    leetcode第一刷_Merge Intervals
    关于HashMap的一些深入探索与理解
    摄像头拍照上传
    rowid快速分页解析
    flare-spork: 自己维护的Pig on Spark项目
  • 原文地址:https://www.cnblogs.com/tv151579/p/4122920.html
Copyright © 2011-2022 走看看