有段時間沒寫什么了, 打算把jquery中的比較常用的數(shù)組處理方法匯總一下
$.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);
// 如果想退出循環(huán)
// 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]參數(shù)不給或為false, $.grep只收集回調(diào)函數(shù)返回true的數(shù)組元素
// 反之[invert]參數(shù)為true, $.grep收集回調(diào)函數(shù)返回false的數(shù)組元素
}, false );
console.dir(temp);
|
$.map(array, [callback])用的不是太多
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //1.6之前的版本只支持?jǐn)?shù)組
temp = $.map(arr, function (val, key) {
//返回null,返回的數(shù)組長度減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)判斷是否在指定數(shù)組中,常用
1 2 3 | //返回元素在數(shù)組中的位置,0為起始位置,返回-1則未找到該元素
console.log($.inArray( 'javascript' , arr));
|
$.merge(first, second)合并兩個數(shù)組,使用頻率一般
1 2 3 4 5 6 7 8 9 | var frontEnd = [ 'javascript' , 'css' , 'html' ],
backEnd = [ 'java' , 'php' , 'c++' ];
// 這種方式會修改第一個參數(shù), 即frontEnd數(shù)組
temp = $.merge(frontEnd, backEnd);
console.dir(temp);
console.dir(frontEnd);
// 可以用下面的方式來避免對原數(shù)組的影響
// $.merge($.merge([], frontEnd), backEnd);
|
$.unique(array)過濾數(shù)組中的重復(fù)元素,不常用
1 2 3 4 5 6 7 8 9 | // $.unique只支持DOM元素數(shù)組,去除重復(fù)DOM元素,不支持其他類型數(shù)組(String或者Number)
// 獲得原始的DOM數(shù)組,而不是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)將類數(shù)組對象轉(zhuǎn)成數(shù)組,不常用
1 2 3 4 5 | //首先什么是類數(shù)組對象?jQuery官網(wǎng)上用divs = getElementsByTag('div')來做例子
//這個divs有類似數(shù)組的一些方法比如length,通過[index]方式獲取元素等
//然后通過$.makeArray(divs)使它轉(zhuǎn)為數(shù)組,就可以用數(shù)組的其他功能
//比如reverse(), pop()等
|
$(dom).toArray()將jQuery集合恢復(fù)成DOM數(shù)組,不常用
1 2 | //跟makeArray一樣,相當(dāng)?shù)牟怀S?一般情況可以忽略
|
本文參考Mr.Think的blog,在此感謝分享
|