ES8 中如何使用 Array.prototype.includes() 方法检查数组中是否包含指定的值?

阅读时长 3 分钟读完

在前端开发中,数组是一个常用的数据类型,我们常常需要在数组中查找是否包含某个特定的元素。在 ES8 中,新增了一个方法 Array.prototype.includes(),提供了一种方便的方式来检查数组中是否包含指定的值。该方法返回一个布尔值,指示数组中是否包含该元素。

Array.prototype.includes() 的语法

Array.prototype.includes() 方法的语法非常简单:

该方法接收两个参数,其中 valueToFind 是要查找的元素,fromIndex 是可选参数,表示从数组的哪个索引开始查找。如果 fromIndex 参数不传,默认值为 0。如果 fromIndex 是负数,则从数组结尾开始往前数。如果 fromIndex 大于或等于数组长度,则直接返回 false。

Array.prototype.includes() 的用法

下面来看一个例子,假设我们有一个数组 arr,需要查找其中是否包含元素 x

上面的代码中,我们调用了 arr.includes(x) 方法,该方法返回 true,表示该数组中包含元素 x

我们也可以在指定的索引位置开始查找元素是否存在,比如下面的代码从数组第二个位置开始查找元素 x

这次我们传入了第二个参数 1,表示从数组的第二个索引位置开始查找。因为数组中的索引是从 0 开始的,所以第二个位置是索引 1,对应的元素是 2。但是我们希望从第二个元素的位置开始往后查找,因此需要传入 1。

接下来,我们来看一个查找字符串中是否包含某个子串的例子:

上面的代码中,我们首先定义了一个字符串 str,然后使用 str.includes(substr) 方法查找其中是否包含子串 substr。该方法返回 true,表示字符串中包含该子串。

注意事项

在使用 Array.prototype.includes() 方法时,需要注意以下几点:

  1. 该方法会从数组的第一个元素开始查找,直到找到指定的元素或者到达数组末尾。
  2. Array.prototype.includes() 方法使用严格相等运算符,即 ===,来比较元素是否相等。
  3. Array.prototype.includes() 方法对于 NaN 和 undefined 的处理与相等运算符 === 的处理方式相同,即:NaN !== NaN,但是 undefined === undefined

总结

使用 Array.prototype.includes() 方法可以方便地检查数组中是否包含指定的值,避免了遍历整个数组的操作。该方法很灵活,可以指定从数组的哪个位置开始查找,也可以用于查找字符串中的子串。在使用时,需要注意该方法使用严格相等运算符来比较元素是否相等。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a917d548841e9894564d91

纠错
反馈