Jquery 數組常用操作
參考博客:http://www.jb51.net/article/43164.htm
1. $.each(array, [callback]) 遍歷[常用]
解釋:
不同於遍歷JQuery 對象的 $().each() 方法,此方法可用於遍例任何對象(不僅僅是數組).
回調函數擁有兩個參數:第一個為對象的成員或數組的索引, 第二個為對應變量或內容.
如果需要退出 each 循環可使回調函數返回 false, 其它返回值將被忽略.
each遍歷,在平常的事件處理中,是for循環的變體,但比for循環強大.在數組中,它可以輕松的攻取數組索引及對應的值.例:
var _mozi=['墨家','墨子','墨翟','兼愛非攻','尚同尚賢']; //本文所用到的數組, 下同 $.each(_mozi,function(key,val){ //回調函數有兩個參數,第一個是元素索引,第二個為當前值 alert('_mozi數組中 ,索引 : '+key+' 對應的值為: '+val); });
相對於原生的for..in,each更強壯一點. for..in也可以遍歷數組,並返回對應索引,但值是需要通過arrName[key]來獲取
2. $.grep(array, callback, [invert]) 過濾數組[常用]
解釋: 使用過濾函數過濾數組元素.此函數至少傳遞兩個參數(第三個參數為true或false,對過濾函數返回值取反): 待過濾數組和過濾函數. 過濾函數必須返回 true 以保留元素或 false 以刪除元素. 另外,過濾函數還可以是可設置為一個字符串;
var arr = [1, 2, 3, 4, 5]; var removeItem = 2; arr = $.grep(arr, function(value) { return value != removeItem; });
3 .$.inArray(val,array)判斷值是否存在於數組中[常用]
解釋: 確定第一個參數在數組中的位置, 從0開始計數(如果沒有找到則返回 -1
indexOf()返回字符串的首次出現位置,而$.inArray()返回的是傳入參數在數組中的位置,同樣的,如果找到的,返回的是一個大於或等於0的值,若未找到則返回-1.可用它判斷某個值是否存在於數組中
var _exist=$.inArray('墨子',_mozi); var _inexistence=$.inArray('衛鞅',_mozi) if(_exist>=0){ alert('墨子 存在於數組_mozi中,其在數組中索引值是: '+_exist); } if(_inexistence<0){ alert('衛鞅 不存在於數組_mozi中!,返回值為: '+_inexistence+'!'); }
未完待緒。。。