你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

开发 前端
你可以使用JavaScript中的不同方法来搜索数组中的项目。选择哪种方法取决于你的特定用例在本文中,我们将讨论四种可用于搜索数组中项目的方法。

你可以使用JavaScript中的不同方法来搜索数组中的项目。选择哪种方法取决于你的特定用例。例如,你是否要获取数组中满足特定条件的所有项目?检查是否满足条件?你是否要检查数组中是否有特定值?还是要在数组中找到值的索引?对于所有这些用例,你都可以了解JavaScript的Array.prototype方法。在本文中,我们将讨论四种可用于搜索数组中项目的方法。

这些方法是:

  • Filter
  • Find
  • Includes
  • IndexOf

1. Array.filter()

我们可以使用Array.filter()方法在数组中查找满足特定条件的元素。例如,如果我们要获取大于10的数字数组中的所有项目,则可以执行以下操作:

你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

使用Array.filter()方法的语法如下:

你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

解释:newArray 是返回新的数组;array 是在其上调用filter方法的数组;callback 是应用于数组每个元素的回调函数。如果数组中没有项目符合条件,则返回一个空数组。有时候,我们不需要满足特定条件的所有元素。我们只需要一个符合条件的元素。在这种情况下,只需要使用find()方法即可。

2. Array.find()

使用Array.find()方法查找满足特定条件的第一个元素。就像filter一样,它以回调为参数,并返回满足回调条件的第一个元素。让我们在示例中演示对数组使用find方法:

你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

array.find()的语法为

你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

回调是在数组中的每个值上执行的函数,带有三个参数:element -要迭代的元素(必填);index -当前元素的索引/位置(可选);array- find调用的数组(可选)。但是请注意,如果数组中没有项目符合条件,则返回undefined。但是,如果只是想检查某个元素是否在数组中怎么办?怎么做到这一点?

3. Array.includes()

includes()方法确定数组是否包含某个值,并在适当时返回true或false。因此,在下面的示例中,如果我们要检查20是否为数组中的元素之一,则可以执行以下操作:

你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

你注意到了吗?此方法与上面其他方法之间的区别。此方法是接受值而不是回调作为参数。这是include方法的语法:

你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

解释:valueToFind 是您要在数组中检查的值(必填),并且;fromIndex 是您要开始从中搜索元素的数组中的索引或位置(可选)。要了解索引的概念,让我们再次访问示例。如果要检查数组是否在第一个元素之外的其他位置包含10个,可以执行以下操作:

你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

4. Array.indexOf()

indexOf()方法返回可以在数组中找到给定元素的第一个索引。如果数组中不存在该元素,则返回-1。让我们回到我们的例子。让我们找到数组中的索引3。

你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

其语法类似于includes方法的语法。

你还在用for循环搜索数组吗?JavaScript搜索数组的四种不同方法

解释:element 是要在数组中检查的元素(必填);fromIndex 是您要开始从中搜索元素的数组中的索引或位置(可选)。请务必注意,includes和indexOf方法都使用严格的相等性('===')搜索数组。如果值是不同类型的(例如'4'和4),则它们将分别返回false和-1。

最后

通过这4个方法,你无需再使用for循环即可搜索数组。根据你的需求,可以决定哪种方法最适合你的用例。以下是何时使用每种方法的摘要:

  • 使用filter,如果你想找到在符合特定条件的阵列中的所有项目。
  • 使用find,如果你想检查是否至少有一个项目符合特定的条件。
  • 使用includes,如果你想检查一个数组包含一个特定的值。
  • indexOf如果要在数组中查找特定项目的索引。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2011-12-30 13:15:53

Java

2009-12-07 15:02:48

PHP搜索数组

2020-03-04 14:05:35

戴尔

2023-09-04 14:59:49

JavaScript数组

2012-07-19 10:03:32

2022-09-02 14:29:01

JavaScrip数组属性

2024-11-12 16:28:34

2018-12-19 14:43:13

Linux命令搜索文件

2022-03-29 20:52:07

分析方法用户

2012-02-29 09:44:54

MySQL

2023-06-19 15:38:38

JavaScripAPI

2024-10-12 08:52:16

权限模型RBAC

2021-12-31 16:16:04

JavaScript数组代码

2022-08-10 12:02:52

面试JavaScript

2024-09-26 14:27:14

2010-01-20 09:34:26

List<T>

2020-06-12 08:28:29

JavaScript开发技术

2022-03-25 14:47:24

Javascript数据类型开发

2023-05-22 08:03:28

JavaScrip枚举定义

2020-04-21 17:04:12

JavaScriptHTTP请求开发
点赞
收藏

51CTO技术栈公众号