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

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

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

 

使用$.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":"張三"}的引用;ip

 

(2)你們都知道javascript是一種弱類型語言,對於數字類型和字符類型,能夠隨意切換(例如:1+""="1");因此有如下一段代碼:字符串

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

這段代碼返回正常值爲1;io

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

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

相關文章
相關標籤/搜索