ES8 中的 Array.prototype.includes() 方法详解及其在实际应用中的优势
随着 JavaScript 的不断发展,ES8 中新增了 Array.prototype.includes() 方法,它可以用来判断一个数组中是否包含某个特定的元素,它的返回值为布尔类型,即 true 或 false。这个方法的引入大大提高了数组的操作效率和编程效率,本篇文章就来详细介绍它的具体用法及其在实际应用中的优势。
Array.prototype.includes() 方法的用法
Array.prototype.includes() 方法有两个参数,第一个参数是要查找的元素,第二个参数是可选的,用于指定起始查找位置的索引值。
它的语法如下所示:
------------------------------ -----------
其中,searchElement 是必填的,表示要查找的元素;fromIndex 是可选的,表示查找的起始位置。如果不传递该参数,则默认从数组的第一项开始查找。
该方法的返回值为布尔类型,如果数组中包含指定的元素,则返回 true,否则返回 false。
现在,我们通过以下代码来具体说明它的使用方法:
----- ------ - --------- --------- --------- -------- -------------------------------------- -- ---- -------------------------------------- -- ----- ------------------------------------- ---- -- ----- ------------------------------------- ---- -- ----
上述代码中,我们创建了一个水果的数组,然后使用 includes() 方法来查找数组中是否包含特定的元素。其中,第一个例子是在数组中查找字符串 'apple',返回结果为 true;第二个例子则是查找不在数组中的字符串 'grape',返回结果为 false;第三个例子是从索引值为 1 的位置开始查找字符串 'banana',但由于该元素在索引值为 1 的位置之前,故返回结果为 false;最后一个例子则是从索引值为 0 的位置开始查找字符串 'banana',因为该元素在索引值为 1 的位置之后,故返回结果为 true。
Array.prototype.includes() 方法在实际应用中的优势
- 简洁
以前,在 JavaScript 中查找一个数组中是否包含某个元素,需要使用 indexOf() 方法,代码如下:
----- ------ - --------- --------- ---------- -- ------------------------ --- --- - ------------------ -------- -
该代码需要使用条件运算符来判断大于等于 0 的索引值,稍稍显得有些复杂。而使用 includes() 方法,则可以更加简洁明了。
----- ------ - --------- --------- ---------- -- -------------------------- - ------------------ -------- -
- 易读性
includes() 方法用于数组中的查找更加可读可维护,如果没有找到,在代码中需要执行的操作可以放置在 else 字句中,使得代码更加语义化。
----- ------ - --------- --------- ---------- -- -------------------------- - ------------------ -------- - ---- - ------------------- -------- -
- 稳定性
includes() 方法与其它数组方法一样,具有较好的稳定性,它不会改变数组本身,并且具有良好的兼容性,支持 IE11、Edge (12 及以上版本)、Firefox (43 及以上版本)、Chrome (47 及以上版本)、Opera (34 及以上版本)和 Safari (9 内测版)等大部分浏览器。
结论
以 Array.prototype.includes() 方法代替传统的 indexOf() 方法将使得你的代码更加简洁、更加可读和易于维护,和其他 JavaScript 新特性一样,在实际应用中能够大大提高开发效率。因此,开发人员需要熟练掌握这个 API,在开发过程中进行广泛的应用。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6719f0b6c30a6eff8b884e9e