在ES8中,新增了一个非常实用的数组方法,它就是Array.prototype.includes()。这个方法可以帮助我们快速地判断一个数组是否包含某个元素,其返回值为布尔值。在以往,我们常常要使用indexOf()方法实现这个功能,但这个方法并不能完全满足我们的需求。在本篇文章中,我们将深入探究这个新的标准库方法的使用方法、学习和指导意义,并提供实际示例代码。
语法
以下是Array.prototype.includes()方法的语法:
array.includes(searchElement, fromIndex)
其中,
- searchElement: 需要查找的元素。
- fromIndex(可选):从数组的哪个索引处开始查找,默认值为0。
使用示例
以下是该方法的几个使用示例,可供参考:
-- -------------------- ---- ------- ----- ----- - --- -- --- ------------------------------- -- ---- ------------------------------- -- ----- --------------------------------- -- ----- ----- -------------- - --- -- -- -- --- -------------------------------------- ---- -- ---- -------------------------------------- ---- -- ----- -------------------------------------- ----- -- -----
学习和指导意义
1. 简化代码
在以往,我们常常需要使用indexOf()方法实现查找某个元素的功能,该方法的用法如下:
array.indexOf(searchElement) !== -1
可以看出,这个方法会返回一个索引值,如果查不到就返回-1。这不仅让代码显得冗长,还需要增加比较的判断符号。而Array.prototype.includes()方法则更加简洁明了,它直接返回一个布尔值,即可省去这些冗余的代码。
2. 对比NaN
在JavaScript中,NaN(Not a Number)是一个特殊的数值,它表示这个数不是一个有效的数字,而是一个非数值(例如字符串、对象),NaN与任何其他值都不相等,它甚至与自身都不相等。因此,在以往,我们需要使用全局函数isNaN()来判断是否为NaN。但在ES6中,已经有了Number.isNaN()方法,可用于判断一个数是否为NaN。而在ES8中,Array.prototype.includes()方法也开始支持了NaN的查找,从而方便了我们处理NaN的情况。
3. 可接受的fromIndex参数
该方法还可接受一个可选参数fromIndex,用于指定从数组的哪个索引处开始查找元素。该参数在以往的indexOf()方法中也有,但其返回值的含义却不同,它表示在数组的哪个索引位置向后查找,而不是从何处开始查找。而Array.prototype.includes()方法中的fromIndex参数表示从何处开始查找,这意味着我们可以从后往前查找元素,即使传入一个负数作为fromIndex参数也会被正确解读。
结论
Array.prototype.includes()方法的出现,无疑是极大地简化了代码,为我们带来了方便。但是需要注意的是,IE浏览器不支持该方法,而在其他主流浏览器中的支持情况较为广泛。因此,在实际使用中需要根据项目场景来决定是否采用该方法。如果浏览器版本的支持情况无法满足需求,或者更高的兼容性要求,则需要使用其他方法或插件进行补充或取代。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6705e3e6d91dce0dc8559882