篩選數(shù)組

最近在看關(guān)于jq的相關(guān)內(nèi)容正好看到了關(guān)于數(shù)組篩選的相關(guān)內(nèi)容就做了些整理。
篩選數(shù)組是對(duì)需要頻繁處理大量數(shù)據(jù)的應(yīng)用來(lái)說(shuō)的并且遍歷數(shù)組主要是查找(篩選)匹配一定標(biāo)準(zhǔn)的元素。數(shù)組中我們?cè)诓檎腋哂诨虻陀谔囟ㄅR界值,或者可能是匹配一些數(shù)據(jù)時(shí),jq就提供了一個(gè)函數(shù)$.grep()。

$.grep() 方法是按照某種條件來(lái)過濾數(shù)組。
$.grep(array,callback,invert)  //調(diào)用的方式

array:待過濾數(shù)組;
callback:處理數(shù)組中的每個(gè)元素,并過濾元素,該函數(shù)中包含兩個(gè)參數(shù),第一個(gè)是當(dāng)前數(shù)組元素的值,一個(gè)是當(dāng)前數(shù)組元素的下標(biāo),即元素索引值。此函數(shù)應(yīng)返回一個(gè)布爾值。
invert:布爾型可選項(xiàng),默認(rèn)值false,值為true或false, 如果 “invert” 為 false 或?yàn)樵O(shè)置,則函數(shù)返回?cái)?shù)組中由過濾函數(shù)返回 true 的元素,當(dāng)”invert” 為 true,則返回過濾函數(shù)中返回 false 的元素集。

var arr=$.grep([0,1,2,3,4,5,6],function(n,i){
return n>2
});

上面的例子返回[3,4,5,6],但是我們給invert的值為true,例如

var arr=$.grep([0,1,2,3,4,5,6],function(n,i){
return n>2
},ture);

所以現(xiàn)在返回的是[0,1,2],也就是被callback函數(shù)過濾掉的元素。
再來(lái)個(gè)例子看看$.grep()

var nums = '1,2,3,4,5,jQuery,CSS,5'.split(',');

如果我們想找出其中的字符串,我們可以直接使用 $.grep() 方法來(lái)完成:

nums = $.grep(nums, function (num, index) {
 // num = 數(shù)組元素的當(dāng)前值  
// index = 當(dāng)前值的下標(biāo)
 return isNaN(num);});   //isNaN() 函數(shù)用于檢查其參數(shù)是否是非數(shù)字值。
console.log(nums); //結(jié)果為: ["jQuery", "CSS"] 

看到這肯定都想到了$.map() 方法也可將一個(gè)數(shù)組轉(zhuǎn)換為另一個(gè)數(shù)組,所以,使用 $.map() 方法也可以完成上面例子中的要求,如下:

nums = $.map(nums, function (num, index) { 
//和$.grep() 的區(qū)別
 //return isNaN,得到結(jié)果為:[true, true] 
return isNaN(num) ? num : null;});
console.log(nums); // ["jQuery", "CSS"] 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,993評(píng)論 19 139
  • 在挖掘分析的過程當(dāng)中對(duì)字符串的處理是極為重要的,且出現(xiàn)也較為頻繁,R語(yǔ)言作為當(dāng)前最為流行的開源數(shù)據(jù)分析和可視化平臺(tái)...
    果果哥哥BBQ閱讀 5,944評(píng)論 0 8
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無(wú)需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,379評(píng)論 0 2
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無(wú)需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,202評(píng)論 0 1
  • 經(jīng)歷了一周的悶熱與疲勞,終于迎來(lái)了周六的神清氣爽,遂爽快的答應(yīng)同學(xué)邀請(qǐng)騎行去十三陵。我借了輛破自行車,一路折磨得我...
    DukeZhang閱讀 818評(píng)論 1 0