ES7 / 2016 中的 Array.prototype.includes 方法详解

阅读时长 3 分钟读完

在 ES7 / 2016 中,JavaScript 新增了一个 Array.prototype.includes 方法,用于判断数组中是否包含某个元素。相比较于之前的判断方式,这个方法更加方便和直观,特别是针对非整数类型的元素,使用起来更加便捷。

使用方法

Array.prototype.includes 方法原型如下:

其中,searchElement 表示要查找的元素,fromIndex 是可选参数,表示开始查找的位置。如果不传 fromIndex 参数,则默认从数组的开始位置查找。

该方法返回一个布尔值,表示数组中是否包含该元素。

下面是一个示例代码:

深入理解

非整数类型判断

在之前的判断方式中,我们通常使用 Array.prototype.indexOf 方法来查找元素在数组中的位置。但是,该方法无法处理非整数类型的元素,比如 NaN。而 Array.prototype.includes 方法则可以正确地判断数组中是否包含 NaN 等特殊类型的元素。

常规匹配 vs. 严格匹配

在使用 Array.prototype.includes 方法时,需要注意其匹配方式。该方法会使用严格相等运算符(===)来判断元素是否相等。因此,如果数组中包含对象或其他引用类型的元素时,需要先将值类型转换成相应的原始值类型,才能正确匹配。

-- -------------------- ---- -------
--- --- - --- -- - ------ - -- -----

------------------------------- -- ----
-------------------------- ------ - ---- -- -----

------------
  -------------
    - ------ - --
    ----------- - ---
    ----------- - --- -- -- ------- --- --------
  -
-- -- ----

以上代码中,判断对象元素是否存在时,需要通过第三个参数将判断方式转换为常规匹配(comparator 函数的返回值为 true 时,表示匹配成功)。

总结

Array.prototype.includes 方法是 ES7 / 2016 新增的一个数组方法,用于判断数组中是否包含某个元素。该方法可以正确处理非整数类型等特殊类型的元素,但是需要注意其匹配方式和对象元素的判断。在实际使用中,我们可以结合实际场景进行选择,提高代码的可读性和效率。

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

纠错
反馈