javascript filter 函數(shù)用于過(guò)濾數(shù)組中符合特定條件的元素,返回一個(gè)由滿足條件的元素組成的新數(shù)組。用法包括:過(guò)濾滿足簡(jiǎn)單或復(fù)雜條件的元素,以及創(chuàng)建過(guò)濾器鏈。filter 函數(shù)不會(huì)修改原始數(shù)組,回調(diào)函數(shù)必須返回布爾值,如果未返回布爾值,將會(huì)拋出錯(cuò)誤。
JavaScript 中 filter 函數(shù)的用法
filter 函數(shù)是 JavaScript 數(shù)組內(nèi)置方法,用于過(guò)濾數(shù)組中滿足特定條件的元素,返回一個(gè)由符合條件的元素組成的新數(shù)組。
語(yǔ)法:
<code class="javascript">filter(callback(element, index, array))</code>
登錄后復(fù)制
參數(shù):
callback(element, index, array):一個(gè)必須返回布爾值的回調(diào)函數(shù)。
element:當(dāng)前正在處理的數(shù)組元素。
index:當(dāng)前元素在數(shù)組中的索引。
array:正在處理的數(shù)組本身。
返回值:
一個(gè)包含滿足回調(diào)函數(shù)條件的所有元素的新數(shù)組。
用法:
1. 過(guò)濾滿足簡(jiǎn)單條件的元素:
<code class="javascript">const numbers = [1, 2, 3, 4, 5, 6]; const evenNumbers = numbers.filter((num) => num % 2 === 0);</code>
登錄后復(fù)制
2. 過(guò)濾滿足復(fù)雜條件的元素:
<code class="javascript">const users = [ { name: 'John', age: 25 }, { name: 'Mary', age: 30 }, { name: 'Bob', age: 18 } ]; const adults = users.filter((user) => user.age >= 18);</code>
登錄后復(fù)制
3. 過(guò)濾器鏈:
<code class="javascript">const evenAndGreaterThan3 = numbers.filter((num) => num % 2 === 0).filter((num) => num > 3);</code>
登錄后復(fù)制
示例:
以下示例演示了如何使用 filter 函數(shù)過(guò)濾一個(gè)包含學(xué)生分?jǐn)?shù)的數(shù)組,獲取不及格的學(xué)生名單:
<code class="javascript">const scores = [90, 85, 77, 65, 52, 45]; const failingScores = scores.filter((score) => score </code>
登錄后復(fù)制
failingScores
變量將包含以下元素:
52
45
注意:
filter 函數(shù)本身不會(huì)修改原始數(shù)組。
回調(diào)函數(shù)必須返回布爾值。如果未返回布爾值,將拋出錯(cuò)誤。