JavaScript 數(shù)組過濾
■知識點
使用filterO方法可以返回數(shù)組中滿足指定條件的元素。具體用法如下:
array.filter(callbackfn[, thisArg])
參數(shù)說明如下。
callbackfn:必需參數(shù),一個接受最多3個參數(shù)的函數(shù)。對于數(shù)組中的每個元素,filter方法都會調(diào)用callbackfn函數(shù)一次。提示,回調(diào)函數(shù)語法說明可以參考20.1.2小節(jié)。
thisArg:可選參數(shù),可在callbackfn函數(shù)中為其引用this關(guān)鍵字的對象。如果省略thisArg,則 undefined 將用作 this 值。
返回值是一個包含回調(diào)函數(shù)為其返回tme的所有值的新數(shù)組。如果回調(diào)函數(shù)為array的所有元素返回false,則新數(shù)組的長度為0。
■實例設(shè)計
【示例1】下面的示例演示如何使用filterO方法篩選出數(shù)組中的素數(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方法過濾掉數(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方法過濾字符串中每個單詞的首字母。
function f(value, index, ar) {
if (index == 0) return true; //第 1 個字母直接選擇
else return ar [index - 1] === " "; //如果字母前面是空字符,則返回這個字母
}
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
點擊加載更多評論>>