ES7 正式增加 Array.prototype.includes 方法

引言:

在ES6前,为了检测数组是否包含特定元素,我们必须使用Array.prototype.indexOf()方法来检查数组中是否存在指定的值,这种方法只能检查数值和字符串类型,无法检查是否包含NaN和对象等类型。ES7新增了Array.prototype.includes()方法,解决了Array.prototype.indexOf()方法的不足,可以在数组中检测各种类型的元素。

用法:

使用方法非常简单,只需在数组上调用Array.prototype.includes()方法,并传入要检测的元素。如果元素存在于数组中,则返回true,否则返回false

语法: array.includes(searchElement, fromIndex)

其中, searchElement 表示要查找的元素。fromIndex(可选)表示查找的起始位置,默认为0。如果指定了负数,则表示从数组末尾开始确定查找开始位置的索引。具体可见下面的示例代码。

示例代码:

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

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

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

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

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

可以看出,在示例代码中,arr数组包含数值、NaN、字符串和对象。使用Array.prototype.includes()方法检查该数组中的元素,结果如下:

  • arr.includes(1)返回true,因为1存在于数组中。
  • arr.includes(NaN)返回true,因为NaN存在于数组中。
  • arr.includes('worild')返回false,因为数组中不存在'worild'这个元素。
  • arr.includes({a: 1})返回false,因为对象类型无法比较。
  • arr.includes('hello', 2)返回false,因为从索引2开始检查,字符串'hello'在该索引之前,因此返回false。
  • arr.includes('hello', 3)返回true,因为从位置3开始检查,字符串'hello'在该位置后面出现,因此返回true。
  • arr.includes(NaN, -3)返回true,因为从倒数第三个元素开始检查,NaN在该位置出现。
  • arr.includes(NaN, -2)返回false,因为从倒数第二个元素开始检查,NaN不在该位置出现。

以上示例清楚地说明了Array.prototype.includes()方法的使用。

指导意义:

Array.prototype.includes()方法的出现增强了JavaScript数组的操作能力,用起来比Array.prototype.indexOf()方法还要方便。Array.prototype.includes()方法不仅能检查数值和字符串类型,还可以检查函数、对象、undefined、null和NaN等类型。对于深入了解JavaScript的开发者来说,Array.prototype.includes()方法是一个必学的知识点,并且可以大大简化我们的程序开发过程。

结论:

随着ES7技术的更新,JavaScript的发展和进步不断,它的各种特性和方法越来越强大和实用,可以更好地帮助前端工程师们开发出高效稳定的Web应用。如果你是一名前端工程师,那么学习Array.prototype.includes()方法可以帮助你更高效地处理数组数据,提高代码质量和性能,希望这篇文章对你有所启发。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672ae0d9ddd3a70eb6d10cf2