使用 ES2017 中的 Array.prototype.includes() 替代 indexOf()

在前端开发中,我们经常需要对数组进行操作。而在数组中查找特定元素时,我们通常使用 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