javascript filter 函數用于過濾數組中符合特定條件的元素,返回一個由滿足條件的元素組成的新數組。用法包括:過濾滿足簡單或復雜條件的元素,以及創(chuàng)建過濾器鏈。filter 函數不會修改原始數組,回調函數必須返回布爾值,如果未返回布爾值,將會拋出錯誤。
JavaScript 中 filter 函數的用法
filter 函數是 JavaScript 數組內置方法,用于過濾數組中滿足特定條件的元素,返回一個由符合條件的元素組成的新數組。
語法:
<code class="javascript">filter(callback(element, index, array))</code>
登錄后復制
參數:
callback(element, index, array):一個必須返回布爾值的回調函數。
element:當前正在處理的數組元素。
index:當前元素在數組中的索引。
array:正在處理的數組本身。
返回值:
一個包含滿足回調函數條件的所有元素的新數組。
用法:
1. 過濾滿足簡單條件的元素:
<code class="javascript">const numbers = [1, 2, 3, 4, 5, 6]; const evenNumbers = numbers.filter((num) => num % 2 === 0);</code>
登錄后復制
2. 過濾滿足復雜條件的元素:
<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>
登錄后復制
3. 過濾器鏈:
<code class="javascript">const evenAndGreaterThan3 = numbers.filter((num) => num % 2 === 0).filter((num) => num > 3);</code>
登錄后復制
示例:
以下示例演示了如何使用 filter 函數過濾一個包含學生分數的數組,獲取不及格的學生名單:
<code class="javascript">const scores = [90, 85, 77, 65, 52, 45]; const failingScores = scores.filter((score) => score </code>
登錄后復制
failingScores
變量將包含以下元素:
52
45
注意:
filter 函數本身不會修改原始數組。
回調函數必須返回布爾值。如果未返回布爾值,將拋出錯誤。