我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript 中 find() 和 filter() 方法的区别

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript 中 find() 和 filter() 方法的区别

[[442664]]

在列出这两种方法的区别之前,我们先来一一了解这些方法。

JavaScript find() 方法

ES6 find() 方法返回通过测试函数的第一个元素的值。如果没有值满足测试函数,则返回 undefined。

语法

以下语法中使用的箭头函数。

 

  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} 

 

现在我们要找到第一个年龄为 22 的用户

 

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

 

假设没有找到匹配意味着它返回 undefined

 

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

 

JavaScript filter() 方法

filter() 方法创建一个包含所有通过测试函数的元素的新数组。如果没有元素满足测试函数,则返回一个空数组。

语法

 

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

 

我们将使用相同的用户数组和测试函数作为过滤器示例。

以下代码使用 filter() 方法查找年龄大于 23 的第一个用户。

 

  1. console.log(users.filter(user => user.age > 23)); 
  2. //console 
  3. 现在我们要过滤年龄为 22 岁的用户//[{ id: 3, name'Balaji', age:24}] 

 

现在我们要过滤年龄为 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}] 

 

假设没有找到匹配意味着它返回一个空数组

 

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

 

find() 和 filter() 的区别与共点

共点

高阶函数:这两个函数都是高阶函数。

区别

通过一个测试功能

find() 返回第一个元素。

filter() 返回一个包含所有通过测试函数的元素的新数组。

如果没有值满足测试函数

find() 返回未定义;

filter() 返回一个空数组;

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript 中 find() 和 filter() 方法的区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaScript 中 find() 和 filter() 方法的区别

JavaScript 在 ES6 上有很多数组方法,每种方法都有独特的用途和好处。

jquery中find和filter有什么区别

今天就跟大家聊聊有关jquery中find和filter有什么区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。jquery是什么jquery是一个简洁而快速的JavaScript库
2023-06-14

jQuery中filter()和find()的区别深入了解

一直不是很清楚filter()方法和find()方法的区别,看jQuery Cookbook一书后,终于算是搞清楚了,下面将新的与大家分享下
2022-11-15

Java Matcher 的 find() 和 match() 方法有何不同?(Java Matcher的find()和match()方法有什么区别)

在Java中,Matcher类是java.util.regex包中的一个重要类,用于对字符串进行正则表达式匹配操作。find()和match()是Matcher
Java Matcher 的 find() 和 match() 方法有何不同?(Java Matcher的find()和match()方法有什么区别)
Java2024-12-15

javascript中find()方法的作用

这篇文章主要介绍了javascript中find()方法的作用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript可以做什么1.可以使网页具有交互性,例如响应用
2023-06-14

浅谈django model的get和filter方法的区别(必看篇)

django的get和filter方法是django model常用到的,搞清楚两者的区别非常重要。 为了说明它们两者的区别定义2个modelsclass Student(models.Model): name = models.CharF
2022-06-04

js中filter和map的区别有哪些

这篇文章主要介绍js中filter和map的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript有什么特点1、js属于一种解释性脚本语言;2、在绝大多数浏览器的支持下,js可以在多种平台下运行
2023-06-14

JavaScript中如何使用 .map()、.reduce() 和 .filter()方法

这篇文章主要为大家展示了“JavaScript中如何使用 .map()、.reduce() 和 .filter()方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中如何使用
2023-06-02

Javascript 中 var 和 let 、const 的区别及使用方法

ECMAScript变量是松散类型的,意思是变量可以用于保存任何类型的数据,每个变量只不过是一个用于保存任意值的命名占位符,这篇文章主要介绍了Javascript 中 var 和 let 、const 的区别以及具体使用效果,需要的朋友可以参考下
2023-01-13

python中map和filter函数的区别是什么

python中map和filter函数的区别是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python的五大特点是什么python的五大特点:1.简单易学,开发程序时
2023-06-14

linux find的-print0和xargs中-0有什么区别

小编给大家分享一下linux find的-print0和xargs中-0有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!默认情况下, find 每输出一个
2023-06-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录