有段時間沒寫什么了, 打算把jquery中的比較常用的數組處理方法匯總一下
$.each(array, [callback])遍歷,很常用
1 2 3 4 5 6 7 8 | var arr = [ 'javascript' , 'php' , 'java' , 'c++' , 'c#' , 'perl' , 'vb' , 'html' , 'css' , 'objective-c' ]; $.each(arr, function (key, val) { ??? // firebug console ??? console.log( 'index in arr:' + key + ", corresponding value:" + val); ??? // 如果想退出循環 ??? // return false; }); |
$.grep(array, callback, [invert])過濾,常用
1 2 3 4 5 6 7 8 9 | var temp = []; temp = $.grep(arr, function (val, key) { ??? if (val.indexOf( 'c' ) != -1) ??????? return true ; ??? // 如果[invert]參數不給或為false, $.grep只收集回調函數返回true的數組元素 ??? // 反之[invert]參數為true, $.grep收集回調函數返回false的數組元素 }, false ); console.dir(temp); |
$.map(array, [callback])用的不是太多
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //1.6之前的版本只支持數組 temp = $.map(arr, function (val, key) { ??? //返回null,返回的數組長度減1 ??? if (val === 'vb' ) return null ; ??? return val; }); console.dir(temp); //1.6開始支持json格式的object var obj = {key1: 'val1' , key2: 'val2' , key3: 'val3' }; temp = $.map(obj, function (val, key) { ??? return val; }); console.dir(temp); |
$.inArray(val, array)判斷是否在指定數組中,常用
1 2 3 | //返回元素在數組中的位置,0為起始位置,返回-1則未找到該元素 console.log($.inArray( 'javascript' , arr)); |
$.merge(first, second)合并兩個數組,使用頻率一般
1 2 3 4 5 6 7 8 9 | var frontEnd = [ 'javascript' , 'css' , 'html' ], ????? backEnd = [ 'java' , 'php' , 'c++' ]; // 這種方式會修改第一個參數, 即frontEnd數組 temp = $.merge(frontEnd, backEnd); console.dir(temp); console.dir(frontEnd); // 可以用下面的方式來避免對原數組的影響 // $.merge($.merge([], frontEnd), backEnd); |
$.unique(array)過濾數組中的重復元素,不常用
blahblahblah....
1 2 3 4 5 6 7 8 9 | // $.unique只支持DOM元素數組,去除重復DOM元素,不支持其他類型數組(String或者Number) // 獲得原始的DOM數組,而不是jQuery封裝的 var divs = $( 'div' ).get(); // 增加幾個class為dup的div divs = divs.concat($( 'div.dup' ).get()); console.log( "before unique:" + divs.length); divs = $.unique(divs); console.log( "after unique:" + divs.length); |
$.makeArray(obj)將類數組對象轉成數組,不常用
1 2 3 4 5 | //首先什么是類數組對象?jQuery官網上用divs = getElementsByTag('div')來做例子 //這個divs有類似數組的一些方法比如length,通過[index]方式獲取元素等 //然后通過$.makeArray(divs)使它轉為數組,就可以用數組的其他功能 //比如reverse(), pop()等 |
$(dom).toArray()將jQuery集合恢復成DOM數組,不常用
1 2 | //跟makeArray一樣,相當的不常用,一般情況可以忽略 |
本文參考Mr.Think的blog,在此感謝分享