Jquery遍歷數組之$.inArray()方法介紹


$.inArray()函數用於在數組中搜索指定的值,並返回其索引值。如果數組中不存在該值,則返回-1;

$.inArray(value,array)    --value是要查找的值,array是被查找的數組。

 

 

使用$.inArray()方法必須注意的點,否則會掉坑

(1)看如下代碼:

        $(function () {
              var arr=[{"name":"張三"},{"name":"李四"},{"name":"王五"}];
              alert($.inArray({"name":"張三"}, arr));
        });

上面這段代碼不仔細分析怎么看都沒有錯,但是返回值是-1。下面來分析下原因發現:

錯誤的原因是{"name":"張三"}和{"name":"張三"}是兩個不同的引用;所以在arr數組里面找不到{"name":"張三"}這個對象;代碼如果這樣改就可以了

        $(function () {
            var obj = { "name": "張三" };
            var arr = [{ "name": "李四" }, obj, { "name": "王五"}];
            alert($.inArray(obj, arr));
        });

這段代碼返回的就是1;返回值正常,這時的obj是{"name":"張三"}的引用;

 

(2)大家都知道javascript是一種弱類型語言,對於數字類型和字符類型,可以隨意切換(例如:1+""="1");所以有以下一段代碼:

        $(function () {
            var arr = [1, 2, 3, 4, 5];
            var a = 2;
            alert($.inArray(a, arr)); });

這段代碼返回正常值為1;

        $(function () {
            var arr = [1, 2, 3, 4, 5];
            var a = "2";
            alert($.inArray(a, arr));
        });

當把a的值改為字符串2返回值就出錯了為-1;所以各位在使用這個$.inArray()方法時,一定要確保數據類型是一樣的,雖然javascript是一種弱類型語言;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM