如何在 JS 中判断数组是否包含指定的元素(多种方法),进收藏夹吃灰吧!

开发 前端
数组是我们编程中经常使用的的数据结构之一。在处理数组时,我们经常需要在数组中查找特定的值,JavaScript 包含一些内置方法来检查数组是否有特定的值或对象。

[[379652]]

本文已经原作者 Abhilash Kakumanu 授权翻译。

简介

数组是我们编程中经常使用的的数据结构之一。在处理数组时,我们经常需要在数组中查找特定的值,JavaScript 包含一些内置方法来检查数组是否有特定的值或对象。

今天,我们来一起看看如何检查数组是否包含特定值或元素。

检查数组是否包含一个基本类型的值

Arrya.includes() 方法

检查数组值的最简单方法是使用include()方法,如下所示:

  1. let animals = ["🐘""🐒""🐶""🐍"
  2.  
  3. animals.includes("🐶") // true 
  4. animals.includes("🐱") // false 

该函数返回一个布尔值,表示该值是否存在。

Arrya.indexOf() 方法

在需要查找的元素的确切位置的情况下,可以使用indexOf(elem)方法,该方法在指定的数组中查找elem并返回其第一次出现的索引,如果数组不包含elem则返回-1。

例如,我们可以在包含 grade 的数组中查找第一次出现的 grade:

  1. let grades = ["B""D""C""A"
  2.  
  3. grades.indexOf("A") // 3 
  4. grades.indexOf("F") // -1 

在第一个实例中,元素出现,并返回其位置,在第二个实例中,返回值表示元素不存在。

我们可以使用它来轻松地改变代码流

  1. let grades = ["B""D""C""A"
  2.  
  3. if (grades.indexOf("F") >= 0) { 
  4.     console.log("元素存在"); 
  5. else { 
  6.     console.log("元素不存在"); 

检查对象数组是否包含对象

some() 方法

在搜索对象时,include()检查提供的对象引用是否与数组中的对象引用匹配。这不是我们想要的,因为对象可以有相同的字段和相应的值,但引用不同。

我们可以使用some()方法根据对象的内容进行搜索。some()方法接受一个参数,接受一个回调函数,对数组中的每个值执行一次,直到找到一个满足回调函数设置的条件的元素,并返回true。

为了更好地理解它,让我们看看一些 some()的实际应用

  1. let animals = [{name"dog"}, {name"snake"}, {name"monkey"}, {name"donkey"}] 
  2. let element = {name"monkey"
  3.  
  4. animals.some(animal => animal.name === element.name

回调函数在前两种情况下返回 false,但在第三个情况下返回 true,因为名称匹配。此后,some()暂停执行并返回 true。

总结

在本文中,我们介绍了在JavaScript中检查数组是否包含指定值的几种方法。

我们已经介绍了include()函数,它会在值存在时返回一个布尔值。函数的作用是:如果值存在,则返回该值的索引;如果不存在,则返回-1。

最后,对于对象,some()函数可帮助我们根据对象的内容搜索对象的存在。

我是小智,我要去刷碗了,我们下期再见!

作者:Abhilash Kakumanu 译者:前端小智 来源:medium

 

原文:https://stackacabuse.com/javascript-check-if-array-contains-a-value-element/

本文转载自微信公众号「大迁世界」,可以通过以下二维码关注。转载本文请联系大迁世界公众号。

 

责任编辑:武晓燕 来源: 大迁世界
相关推荐

2022-08-05 09:15:27

数据治理

2021-02-19 07:57:00

JS 技巧路线

2021-01-26 05:04:47

属性FlexBox用法

2020-06-28 08:02:28

JavaScript数组技术

2021-02-22 08:19:49

js前端元素

2021-01-19 07:51:12

JavaScriptJavac++

2024-07-22 15:42:08

Linux字符串

2009-11-12 09:30:40

Google DocsChrome藏夹

2020-08-24 08:07:32

Node.js文件函数

2009-05-21 14:22:24

浏览器共享收藏夹

2017-12-18 10:12:48

LinuxShell命令

2018-02-23 12:12:29

Graphical m收藏夹作弊行为

2009-10-20 15:39:20

Linux压缩

2009-07-03 13:22:37

调用Servlet

2024-01-12 08:40:56

Python计算质数质数

2023-09-13 16:55:42

JavaScript数组

2020-08-17 09:22:30

字符串子串对象

2014-06-26 14:09:05

2020-09-19 18:03:42

Docker

2017-02-08 11:30:51

PHP判断数组
点赞
收藏

51CTO技术栈公众号