在前端开发中,我们经常需要对数组进行操作。而在数组中查找特定元素时,我们通常使用 indexOf()
方法。然而,ES2017 中新增了 Array.prototype.includes()
方法,它可以更加方便地进行查找操作,并且具有更好的语义化。
什么是 Array.prototype.includes()?
Array.prototype.includes()
是一个数组方法,用于判断数组中是否包含某个元素。它的语法如下:
---------------------------- -----------
其中,searchElement
表示要查找的元素,fromIndex
表示开始查找的位置,可选参数,默认值为 0。
该方法的返回值为布尔值,如果数组中包含该元素,则返回 true
,否则返回 false
。
与 indexOf() 方法的区别
在查找元素时,indexOf()
方法与 includes()
方法都可以实现。但是,它们在一些细节上存在差异。
返回值
indexOf()
方法在找到元素时返回该元素的下标,未找到时返回 -1。而 includes()
方法则直接返回布尔值,更加简洁明了。
NaN
当数组中包含 NaN 元素时,indexOf()
方法无法正确查找,返回值为 -1。而 includes()
方法可以正确查找 NaN 元素。
第二个参数
indexOf()
方法的第二个参数表示开始查找的位置。而 includes()
方法的第二个参数表示从哪个下标开始查找。这个区别可能会让你在使用时产生一些混淆。
使用 Array.prototype.includes() 的例子
下面是一个简单的例子,用 includes()
方法查找数组中是否包含特定元素:
----- ------ - --------- --------- ---------- --------------------------------------- -- ---- -------------------------------------- -- -----
我们还可以使用第二个参数 fromIndex
来指定开始查找的位置:
----- ------ - --------- --------- ---------- ------------------------------------ ---- -- ----- ------------------------------------- ---- -- ----
总结
在实际开发中,使用 Array.prototype.includes()
方法可以更加方便地查找数组中的元素,并且具有更好的语义化。同时,它还可以正确查找 NaN 元素,避免了由于 indexOf()
方法的局限性而产生的问题。
因此,我们应该尽可能地使用 includes()
方法,以提高代码的可读性和健壮性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65fbdb35d10417a22276a418