自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript 中 find() 和 filter() 方法的區(qū)別

開發(fā) 前端
JavaScript 在 ES6 上有很多數(shù)組方法,每種方法都有獨特的用途和好處。

 在開發(fā)應(yīng)用程序時,大多使用數(shù)組方法來獲取特定的值列表并獲取單個或多個匹配項。

[[442664]]

在列出這兩種方法的區(qū)別之前,我們先來一一了解這些方法。

JavaScript find() 方法

ES6 find() 方法返回通過測試函數(shù)的第一個元素的值。如果沒有值滿足測試函數(shù),則返回 undefined。

語法

以下語法中使用的箭頭函數(shù)。

 

  1. find((element) => { /* ... */ } ) 
  2. find((element, index) => { /* ... */ } ) 
  3. find((element, index, array) => { /* ... */ } ) 

 

我們有一個包含名稱 age 和 id 屬性的用戶對象列表,如下所示:

 

  1. let users = [{ 
  2.     id:1, 
  3.     name'John'
  4.     age: 22 
  5. }, { 
  6.     id:2, 
  7.     name'Tom'
  8.     age: 22 
  9. }, { 
  10.     id:3, 
  11.     name'Balaji'
  12.     age: 24 
  13. }]; 

 

以下代碼使用 find() 方法查找年齡大于 23 的第一個用戶。

 

  1. console.log(users.find(user => user.age > 23)); 
  2. //console 
  3. //{ id: 3, name'Balaji', age:24} 

 

現(xiàn)在我們要找到第一個年齡為 22 的用戶

 

  1. console.log(users.find(user => user.age === 22)); 
  2. //console 
  3. //{ id: 1, name'John', age:22} 

 

假設(shè)沒有找到匹配意味著它返回 undefined

 

  1. console.log(users.find(user => user.age === 25)); 
  2. //console 
  3. //undefined 

 

JavaScript filter() 方法

filter() 方法創(chuàng)建一個包含所有通過測試函數(shù)的元素的新數(shù)組。如果沒有元素滿足測試函數(shù),則返回一個空數(shù)組。

語法

 

  1. filter((element) => { /* ... */ } ) 
  2. filter((element, index) => { /* ... */ } ) 
  3. filter((element, index, array) => { /* ... */ } ) 

 

我們將使用相同的用戶數(shù)組和測試函數(shù)作為過濾器示例。

以下代碼使用 filter() 方法查找年齡大于 23 的第一個用戶。

 

  1. console.log(users.filter(user => user.age > 23)); 
  2. //console 
  3. 現(xiàn)在我們要過濾年齡為 22 歲的用戶//[{ id: 3, name'Balaji', age:24}] 

 

現(xiàn)在我們要過濾年齡為 22 歲的用戶

 

  1. console.log(users.filter(user => user.age === 22)); 
  2. //console 
  3. //[{ id: 1, name'John', age:22},{ id: 2, name'Tom', age:22}] 

 

假設(shè)沒有找到匹配意味著它返回一個空數(shù)組

 

  1. console.log(users.filter(user => user.age === 25)); 
  2. //console 
  3. //[] 

 

find() 和 filter() 的區(qū)別與共點

共點

高階函數(shù):這兩個函數(shù)都是高階函數(shù)。

區(qū)別

1、通過一個測試功能

find() 返回第一個元素。

filter() 返回一個包含所有通過測試函數(shù)的元素的新數(shù)組。

2、如果沒有值滿足測試函數(shù)

find() 返回未定義;

filter() 返回一個空數(shù)組;

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2016-12-06 10:30:39

JavaScriptWriteWriteln

2023-10-19 08:01:04

FirstLastTake

2009-06-26 16:23:12

Hibernate gHibernate l

2018-09-26 14:37:17

JavaScript前端編程語言

2009-06-12 15:36:24

Hibernate fcreateQuery

2020-08-02 23:20:36

JavaScriptmap()forEach()

2024-03-11 01:00:00

jsfor循環(huán)

2011-06-08 11:05:38

getpost

2024-08-20 16:04:27

JavaScript開發(fā)

2010-10-08 15:17:47

JavaScriptJava

2023-11-29 07:47:29

Golang函數(shù)

2022-01-13 10:04:21

攔截器Interceptor過濾器

2011-06-01 11:37:48

searchmatchjavascript

2021-02-07 22:59:55

JavaScript編程方法鏈

2016-10-13 19:33:10

javascript數(shù)組indexOf

2021-04-26 07:51:00

JavaScript方法函數(shù)

2024-01-10 08:47:48

Python函數(shù)Map()

2024-11-08 12:42:34

Rustmapfilter

2010-08-20 13:34:12

IEFirefoxJavascript

2024-12-06 10:43:27

點贊
收藏

51CTO技術(shù)棧公眾號