JavaScript 中的 filter()
在 JavaScript 中,filter() 方法是用于過濾數(shù)組中的元素的高階函數(shù)。filter() 方法將一個(gè)數(shù)組中的每個(gè)元素傳遞給一個(gè)回調(diào)函數(shù),回調(diào)函數(shù)返回一個(gè)布爾值,決定該元素是否應(yīng)該被過濾出數(shù)組。最終,filter() 方法返回一個(gè)新的數(shù)組,其中包含回調(diào)函數(shù)返回 true 的元素。
filter() 方法的基本語法如下:
其中:
array
:要過濾的數(shù)組。callback
:回調(diào)函數(shù),接受以下參數(shù):element
:當(dāng)前被遍歷到的數(shù)組元素。index
(可選):當(dāng)前元素在數(shù)組中的索引。array
(可選):被遍歷的數(shù)組。thisArg
(可選):在回調(diào)函數(shù)中 this 關(guān)鍵字的值。
語法上可大致分為三類,如下:
filter() 方法在遍歷數(shù)組時(shí),對(duì)每個(gè)元素都調(diào)用回調(diào)函數(shù)。如果回調(diào)函數(shù)返回 true,則該元素將被包含在新數(shù)組中;如果返回 false,則該元素將被過濾掉。
例如,下面的代碼演示了如何使用 filter() 方法過濾出一個(gè)數(shù)組中的偶數(shù):
在這個(gè)例子中,回調(diào)函數(shù) (number) => number % 2 === 0
用于過濾出數(shù)組中的偶數(shù),最終返回一個(gè)新數(shù)組 [2, 4, 6]
。
除了基本語法之外,filter() 方法還可以有一些高級(jí)用法
例如:使用第二個(gè)參數(shù)指定回調(diào)函數(shù)的 this 值。
在這個(gè)例子中,回調(diào)函數(shù)中的 this 關(guān)鍵字被設(shè)置為字符串 "apple",filter() 方法只會(huì)過濾出值等于 "apple" 的元素。