如何在JavaScript中检查一个项目是否在数组中(附实例)

61 阅读4分钟

你可以在JavaScript中使用includes() 方法来检查一个数组中是否存在一个项目。你也可以用它来检查一个字符串中是否存在一个子串。

如果在数组/字符串中找到该项目,它将返回true ,如果该项目不存在,则返回false

在这篇文章中,你将看到如何使用JavaScript中的includes() 方法来检查一个项目是否在一个数组中,以及一个字符串中是否存在一个子串。

如何在JavaScript中检查一个项目是否在一个数组中?Array.includes()

下面是使用includes() 方法来检查一个项目是否在数组中的语法:

array.includes(item, fromIndex)

让我们来分析一下上面的语法。

array 表示数组的名称,该数组将被搜索以检查一个项目是否存在。

includes() 方法有两个参数 -itemfromIndex

  • item 是你要搜索的特定项目。
  • fromIndex.是一个可选的参数,它指定了开始搜索的索引。如果你不包括这个参数,默认索引将被设置为0(第一个索引)。

下面是一些例子,说明如何使用includes() 方法来检查一个数组中是否存在一个项目:

const nums = [ 1, 3, 5, 7];
console.log(nums.includes(3));
// true

在上面的例子中,我们创建了一个名为nums 的数组,里面有四个数字--1、3、5、7。

使用点符号,我们将includes() 方法附加到nums 数组中。

includes() 方法的参数中,我们传入了3。这就是我们想要搜索的项目。

我们得到了true ,因为3存在于nums 数组中。

让我们试着搜索一个不存在于数组中的数字:

const nums = [ 1, 3, 5, 7];
console.log(nums.includes(8));
// false

正如预期的那样,在上面的例子中我们得到了false ,因为8不是nums 数组中的一个项目。

如何在JavaScript中使用Array.includes() 从指定的索引开始检查一个项目是否在数组中

在上一节中,我们看到了如何在不使用includes() 方法中的第二个参数的情况下检查一个数组中的项目是否存在。

作为提醒,第二个参数是用来指定在数组中搜索一个项目时要从哪个索引开始。

数组的索引从0开始。所以第一个项目是0,第二个项目是1,第三个项目是2,以此类推。

下面是一个例子,说明我们如何使用includes() 方法的第二个参数:

const nums = [ 1, 3, 5, 7];
console.log(nums.includes(3,2));
// false

上面的例子返回了false ,尽管我们在数组中把3作为一个项目。这就是原因。

使用第二个参数,我们告诉includes() 方法去搜索数字3,但是从索引2开始:nums.includes(3,2)

这就是这个数组。 [ 1, 3, 5, 7]

索引0 = 1

索引1 = 3

索引2 = 5

索引3=7

因此,从第二个索引即5开始,我们只有5和7([5,7])可以搜索。这就是为什么从索引2搜索3会返回false

如果你把开始搜索的索引改为1,那么你会得到true ,因为在这个范围内可以找到3,这就是:

const nums = [ 1, 3, 5, 7];
console.log(nums.includes(3,1));
// true

如何在JavaScript中使用includes() 方法检查一个子串是否在一个字符串中

与前面的例子类似,你必须使用点符号将includes() 方法附加到要搜索的字符串的名称上。

下面是这个语法的样子:

string.includes(substring, fromIndex)

这里有一个例子:

const bio = "I am a web developer";
console.log(bio.includes("web"));
// true

在上面的例子中,bio 变量的值是 "我是一名网络开发人员"。

使用includes() 方法,我们搜索了子串 "web"。

我们得到了true ,因为 "web "是在bio 字符串中。

你也可以使用第二个参数来指定搜索的开始位置,但是要注意,字符串中的每个字符都代表一个索引,每个子串之间的空格也代表一个索引。

下面是一个例子来证明:

let bio = "I am a web developer";
console.log(bio.includes("web",9));
// false

我们得到false ,因为索引9是 "web "中的e。

从索引9开始,这个字符串看起来是这样的。"eb developer"。子串 "web "在字符串中并不存在,所以false

总结

在这篇文章中,我们谈到了JavaScript中的includes() 方法。你用它来检查一个数组中是否存在一个项目。你也可以用它来检查在一个字符串中是否能找到一个子串。

我们看到了一些例子,解释了它在数组中从第一个索引开始检查一个项目的用途,然后是另一个从指定索引开始的例子。

最后,我们看到了如何使用includes() 方法来检查一个字符串中的子串是否存在,从第一个索引和一个指定索引开始。

编码愉快!