前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何在 JS 中判断数组是否包含指定的元素(多种方法)

如何在 JS 中判断数组是否包含指定的元素(多种方法)

作者头像
前端小智@大迁世界
发布2021-02-04 10:36:06
发布2021-02-04 10:36:06
26.7K00
代码可运行
举报
文章被收录于专栏:终身学习者终身学习者
运行总次数:0
代码可运行
  1. 首页
  2. 专栏
  3. javascript
  4. 文章详情

4

发布于 2 月 2 日

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

最近开源了一个 Vue 组件,还不够完善,欢迎大家来一起完善它,也希望大家能给个 star 支持一下,谢谢各位了。

github 地址:https://github.com/qq44924588...

简介

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

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

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

Arrya.includes() 方法

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

代码语言:javascript
代码运行次数:0
运行
复制
let animals = ["?", "?", "?", "?"]

animals.includes("?") // true
animals.includes("?") // false

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

Arrya.indexOf() 方法

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

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

代码语言:javascript
代码运行次数:0
运行
复制
let grades = ["B", "D", "C", "A"]

grades.indexOf("A") // 3
grades.indexOf("F") // -1

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

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

代码语言:javascript
代码运行次数:0
运行
复制
let grades = ["B", "D", "C", "A"]

if (grades.indexOf("F") >= 0) {
    console.log("元素存在");
} else {
    console.log("元素不存在");
}

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

some() 方法

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
let animals = [{name: "dog"}, {name: "snake"}, {name: "monkey"}, {name: "donkey"}]
let element = {name: "monkey"}

animals.some(animal => animal.name === element.name)

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

总结

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

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

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

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


代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug

原文:https://stackacabuse.com/java...

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 检查数组是否包含一个基本类型的值
    • Arrya.includes() 方法
    • Arrya.indexOf() 方法
  • 检查对象数组是否包含对象
    • some() 方法
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档