JavaScript 數(shù)組過(guò)濾
■知識(shí)點(diǎn)
使用filterO方法可以返回?cái)?shù)組中滿足指定條件的元素。具體用法如下:
array.filter(callbackfn[, thisArg])
參數(shù)說(shuō)明如下。
callbackfn:必需參數(shù),一個(gè)接受最多3個(gè)參數(shù)的函數(shù)。對(duì)于數(shù)組中的每個(gè)元素,filter方法都會(huì)調(diào)用callbackfn函數(shù)一次。提示,回調(diào)函數(shù)語(yǔ)法說(shuō)明可以參考20.1.2小節(jié)。
thisArg:可選參數(shù),可在callbackfn函數(shù)中為其引用this關(guān)鍵字的對(duì)象。如果省略thisArg,則 undefined 將用作 this 值。
返回值是一個(gè)包含回調(diào)函數(shù)為其返回tme的所有值的新數(shù)組。如果回調(diào)函數(shù)為array的所有元素返回false,則新數(shù)組的長(zhǎng)度為0。
■實(shí)例設(shè)計(jì)
【示例1】下面的示例演示如何使用filterO方法篩選出數(shù)組中的素?cái)?shù)。
function f(value, index, ar) {
high = Math.floor(Math.sqrt(value)) + 1;
for (var div = 2; div <= high; div++) {
if (value % div == 0) {
return false;
}
}
return true;
}
var a = [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53];
var al = a.filter(f);
console.log (al); //31,37,41,43,47,53
【示例2】下面的示例演示如何使用filterO方法過(guò)濾掉數(shù)組中在指定范圍外的元素。
var f = function(value) {
if (typeof value !== 'number') return false;
else return value >= this.min && value <= this.max;
}
var a = [6, 12, n15' 16, "the11, -12];
var obj = { min: 10, max: 20 }
var r = a.filter (f, obj);
console.log (r); //12,16
【示例3】下面的示例演示如何使用filterO方法過(guò)濾字符串中每個(gè)單詞的首字母。
function f(value, index, ar) {
if (index == 0) return true; //第 1 個(gè)字母直接選擇
else return ar [index - 1] === " "; //如果字母前面是空字符,則返回這個(gè)字母
}
var a = "The quick brown fox jumps over the lazy dog.";
var subset = [] .filter.call (a, f);
console.log(subset); //T,q,b,f,j,o,t,1,d
點(diǎn)擊加載更多評(píng)論>>