原文:Check if an Item is in an Array in JavaScript – JS Contains with Array.includes(),作者:Ihechikara Vincent Abba

你可以使用 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,因为 nums 数组中存在 3。

让我们尝试搜索数组中不存在的数字。

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

即使我们在数组中有 3 这个项目,上面的示例仍返回 false,原因如下:

使用第二个参数,我们告诉 include() 方法从索引 2 开始搜索数字 3: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() 方法检查子字符串是否在字符串中

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

语法如下所示:

string.includes(substring, fromIndex)

这是一个例子:

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

在上面的示例中,bio 变量的值为 “I am a web developer”。

使用 includes() 方法,我们搜索了子字符串 “web”。

我们返回了 true,因为 “web” 在 bio 字符串中。

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

这是一个示例:

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

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

从索引 9 开始,字符串将是 “eb developer”。字符串中不存在子字符串 “web”,因此返回 false

小结

在本文中,我们讨论了 JavaScript 中的 includes() 方法。你可以使用它来检查一个项目是否存在于数组中。你还可以使用它来检查是否可以在字符串中找到子字符串。

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

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

祝你编程愉快!