返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript中find()和 filter()方法的区别小结
  • 848
分享到

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

2024-04-02 19:04:59 848人浏览 薄情痞子
摘要

目录前言javascript find() 方法JavaScript filter() 方法find() 和 filter() 的区别与共点直接上代码总结前言 JavaScript

前言

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

开发应用程序时,大多使用数组方法来获取特定的值列表并获取单个或多个匹配项。

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

JavaScript find() 方法

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

语法

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


find((element) => {  } )
find((element, index) => {  } )
find((element, index, array) => {  } )

我们有一个包含名称 age 和 id 属性的用户对象列表,如下所示:


let users = [{
    id:1,
    name: 'John',
    age: 22
}, {
    id:2,
    name: 'Tom',
    age: 22
}, {
    id:3,
    name: 'Balaji',
    age: 24
}];

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


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

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


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

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


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

JavaScript filter() 方法

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

语法


filter((element) => {  } )
filter((element, index) => {  } )
filter((element, index, array) => {  } )

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

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


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

现在我们要过滤年龄为 22 岁的用户


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

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


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

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

共点

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

区别

1、通过一个测试功能

find() 返回第一个元素。

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

2、如果没有值满足测试函数

find() 返回未定义;

filter() 返回一个空数组;

直接上代码


let arr = [
  {
    name: 'Rick',
    age: 60
  },

  {
    name: 'Rick',
    age: 70
  },

  {
    name: 'Morty',
    age: 14
  }

]

let findResult = arr.find(i => i.name === 'Rick')
let filterResult = arr.filter(i => i.name === 'Rick')

console.log(arr); 


console.log(findResult);   // {name: "Rick", age: 60}
console.log(filterResult);  // [{name: "Rick", age: 60}, {name: "Rick", age: 70}]

根据以上代码输出结果,可以发现 find 和 filter 都不改变原数组

总结

到此这篇关于JavaScript中find()和filter()方法的区别小结的文章就介绍到这了,更多相关js find() 和 filter() 方法的区别内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaScript中find()和 filter()方法的区别小结

本文链接: https://lsjlt.com/news/161140.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript中find()和 filter()方法的区别小结
    目录前言JavaScript find() 方法JavaScript filter() 方法find() 和 filter() 的区别与共点直接上代码总结前言 JavaScript ...
    99+
    2024-04-02
  • es6中find和filter有哪些区别
    这篇“es6中find和filter有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2024-04-02
  • jquery中find和filter有什么区别
    今天就跟大家聊聊有关jquery中find和filter有什么区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。jquery是什么jquery是一个简洁而快速的JavaScript库...
    99+
    2023-06-14
  • jQuery中filter()和find()的区别深入了解
    一直不是很清楚filter()方法和find()方法的区别,今天在看jQuery Cookbook一书中,终于算是搞清楚了。 filter()过滤DOM元素包装集,是指操作当前元素集...
    99+
    2022-11-15
    jQuery filter() find()
  • JavaScript中map、reduce、filter和find的示例分析
    这篇文章将为大家详细讲解有关JavaScript中map、reduce、filter和find的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。循环在 JavaSc...
    99+
    2024-04-02
  • Javascript中的every()与some()的区别和应用小结
    目录Javascript中的every()与some()的区别和应用every()定义和用法  every()参数说明some()定义和用法  ...
    99+
    2023-05-19
    js every()与some()的区别 every与some用法
  • javascript数组中的map方法和filter方法
    目录一、map方法1编辑器2代码部分3运行结果二、filter方法 1编辑器2代码3运行结果一、map方法 1编辑器 编辑器搞出来 一起研究研究数组中的map方法: 2代...
    99+
    2024-04-02
  • Vue中computed和watch的区别小结
    目录一、Vue中computed和watch的区别二、computed计算属性三、区别总结区别:计算属性computed支持缓存,只有依赖数据发生改变,才会重新进行计算;不支持异步,...
    99+
    2022-12-10
    Vue中computed和watch的区别 Vue中computed和watch异同
  • Webpack和Vite的区别小结
    目录前言WebpackViteVite相比于Webpack打包更快相比Webpack5中使用的MFSU技术Vite插件推荐总结前言 Webpack和Vite是现代前端开发中非常重要的...
    99+
    2023-05-18
    Webpack Vite
  • git和SVN的区别小结
    Git和SVN都是版本控制系统,用于管理和跟踪软件开发过程中的更改。然而,它们之间存在一些重要的区别:1. 分布式vs集中式:Git是一种分布式版本控制系统,每个开发者都有完整的代码仓库副本,并能够在本地进行更改和提交。SVN是一种集中...
    99+
    2023-08-11
    git
  • javascript中find()方法的作用
    这篇文章主要介绍了javascript中find()方法的作用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript可以做什么1.可以使网页具有交互性,例如响应用...
    99+
    2023-06-14
  • es6中filter和map的区别有哪些
    今天小编给大家分享一下es6中filter和map的区别有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • js中filter和map的区别有哪些
    这篇文章主要介绍js中filter和map的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript有什么特点1、js属于一种解释性脚本语言;2、在绝大多数浏览器的支持下,js可以在多种平台下运行...
    99+
    2023-06-14
  • MongoDB中find()和findOne()的区别是什么
    MongoDB中find(和findOne()的区别有:1.返回值不同;2.返回所有符合条件的对象不同;3.获取值的方式不同;MongoDB中find(和findOne()的区别有以下几点返回值不同MongoDB中find()返回的是一个数...
    99+
    2024-04-02
  • 浅谈django model的get和filter方法的区别(必看篇)
    django的get和filter方法是django model常用到的,搞清楚两者的区别非常重要。 为了说明它们两者的区别定义2个models class Student(models.Model):...
    99+
    2022-06-04
    浅谈 必看 区别
  • java中i=i++和j=i++的区别小结
    i=i++;j=i++的区别 i=i++-----------在java中 这个语句的前后顺序应该是这样的(tmp=i;i++;tmp==i) java的编译器在遇到i++和i- -...
    99+
    2024-04-02
  • C++中cin.getline()和getline()函数的区别小结
    前言 C++输入过程中,是把输入加载到缓冲区中,然后对缓冲区中的字符进行读取。cin,cin.get(),cin.getline()三个函数虽然都可以进行舒服读取,但是它们对缓冲区内...
    99+
    2024-04-02
  • JavaScript中的map()和forEach()方法有什么区别?
    聚沙成塔·每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造...
    99+
    2023-10-09
    javascript 开发语言 ecmascript
  • JavaScript中find()和findIndex()方法有什么用
    小编给大家分享一下JavaScript中find()和findIndex()方法有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一...
    99+
    2024-04-02
  • JS中onpropertychange和onchange事件区别小结
    onpropertychange事件和onchange事件都是在表单元素的值发生改变时触发的事件,但它们有一些不同之处。1. 触发条...
    99+
    2023-08-14
    JS
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作