JavaScript中Array.filter的使用詳解

一、簡介

Array.filter是ES6新增的高階函數,它接收一個回調函數,該函數作用於數組的每一個元素,返回true則保留該元素,返回false則過濾掉該元素,最終返回一個新的數組。

二、語法

array.filter(function(currentValue, index, arr), thisValue)
  • currentValue:當前遍歷到的數組元素
  • index:當前遍歷到的數組元素的下標
  • arr:被遍歷的數組
  • thisValue:可選,指定回調函數中的this對象

三、應用場景

在實際開發中,Array.filter廣泛應用於從數組中獲取指定條件的元素,例如:

  • 從一個對象數組中篩選出滿足指定條件的對象
  • 從一個字符串數組中篩選出指定字符開頭的字符串
  • 從一個數字數組中篩選出大於某個特定數字的元素

四、實例一:篩選對象數組

假設有一個人員信息對象數組,需要篩選出所有年齡大於等於18歲且性別為女性的人員:

const persons = [
  { name: '張三', age: 20, gender: '男' },
  { name: '李四', age: 17, gender: '女' },
  { name: '王五', age: 18, gender: '女' },
  { name: '趙六', age: 22, gender: '男' },
]

const females = persons.filter(person => person.age >= 18 && person.gender === '女')

console.log(females) // [{ name: '王五', age: 18, gender: '女' }]

用filter函數遍歷persons數組,將符合條件的元素放入新的數組females中,並返回females數組。

五、實例二:篩選字符串數組

假設有一個字符串數組,需要篩選出所有以字母a開頭的字符串:

const strs = ['apple', 'banana', 'avocado', 'kiwi', 'apricot']

const aStrs = strs.filter(str => str.startsWith('a'))

console.log(aStrs) // ['apple', 'avocado', 'apricot']

利用filter函數遍歷strs數組,用startsWith方法判斷元素是否以字母a開頭,將符合條件的元素放入新數組aStrs中,最終返回aStrs數組。

六、實例三:篩選數字數組

假設有一個數字數組,需要篩選出所有大於等於70的元素:

const scores = [90, 60, 80, 70, 50, 85]

const highScores = scores.filter(score => score >= 70)

console.log(highScores) // [90, 80, 70, 85]

利用filter函數遍歷scores數組,將大於等於70的元素放入新數組highScores中,並返回highScores數組。

七、結語

Array.filter是一個非常靈活實用的函數,能夠幫助我們快速地從數組中提取所需元素,同時也可以通過自定義回調函數進行更為複雜的篩選操作。希望大家可以善用Array.filter,提高開發效率。

原創文章,作者:UANOQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/361062.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UANOQ的頭像UANOQ
上一篇 2025-02-24 00:33
下一篇 2025-02-24 00:34

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 如何使用integratecustomerdata.stream().filter(c->{ if (collectionutil.isnotempty(

    本文將詳細介紹如何在Java編程中使用integratecustomerdata.stream().filter(c->{ if (collectionutil.isnote…

    編程 2025-04-28
  • 使用JavaScript日期函數掌握時間

    在本文中,我們將深入探討JavaScript日期函數,並且從多個視角介紹其應用方法和重要性。 一、日期的基本表示與獲取 在JavaScript中,使用Date對象來表示日期和時間,…

    編程 2025-04-28
  • JavaScript中使用new Date轉換為YYYYMMDD格式

    在JavaScript中,我們通常會使用Date對象來表示日期和時間。當我們需要在網站上顯示日期時,很多情況下需要將Date對象轉換成YYYYMMDD格式的字符串。下面我們來詳細了…

    編程 2025-04-27
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • JavaScript中修改style屬性的方法和技巧

    一、基本概念和方法 style屬性是JavaScript中一個非常重要的屬性,它可以用來控制HTML元素的樣式,包括顏色、大小、字體等等。這裡介紹一些常用的方法: 1、通過Java…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25

發表回復

登錄後才能評論