位置:首頁 > 軟件操作教程 > 編程開發(fā) > JavaScript > 問題詳情

JavaScript 數組過濾

提問人:劉團圓發(fā)布時間:2020-11-25

■知識點

使用filterO方法可以返回數組中滿足指定條件的元素。具體用法如下:

array.filter(callbackfn[, thisArg])

參數說明如下。

    callbackfn:必需參數,一個接受最多3個參數的函數。對于數組中的每個元素,filter方法都會調用callbackfn函數一次。提示,回調函數語法說明可以參考20.1.2小節(jié)。

    thisArg:可選參數,可在callbackfn函數中為其引用this關鍵字的對象。如果省略thisArg,則 undefined 將用作 this 值。

返回值是一個包含回調函數為其返回tme的所有值的新數組。如果回調函數為array的所有元素返回false,則新數組的長度為0。

■實例設計

【示例1】下面的示例演示如何使用filterO方法篩選出數組中的素數。

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方法過濾掉數組中在指定范圍外的元素。

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

繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部