引言:
在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