ECMAScript 2018 中如何正确使用 Array.prototype.includes() 方法
在ECMAScript 2016中,Array.prototype.includes()方法被引入作为原生的数组方法之一。它是用来判断一个数组是否包含一个指定的值,如果包含则返回 true ,否则返回 false。这个方法非常实用,但是在使用时需要注意一些细节,本文将详细介绍如何正确使用Array.prototype.includes()方法。
- 语法
Array.prototype.includes()方法的语法如下:
-------------------------- -----------
其中,arr是指定的数组,valueToFind是要查找的值,fromIndex是可选参数,表示从哪个索引开始查找。
- 返回值
Array.prototype.includes()方法返回一个布尔值。如果数组中包含指定的值,则返回 true,否则返回 false。
- 使用示例
下面是一个简单的使用示例:
----- --- - --- -- -- -- --- ----------------------------- -- ---- ----------------------------- -- -----
在这个示例中,我们定义了一个包含5个数字的数组,然后使用Array.prototype.includes()方法来查找数字3和数字6是否在数组中。由于数字3在数组中,所以第一个console.log()语句返回true,而数字6不在数组中,所以第二个console.log()语句返回false。
- 注意事项
在使用Array.prototype.includes()方法时,需要注意以下几点:
4.1 参数类型
Array.prototype.includes()方法的参数可以是任意类型的值,包括对象、数组、字符串、数字、布尔值等。但是,需要注意的是,该方法使用的是严格相等运算符(===)进行比较,因此在比较对象和数组时,需要保证它们是同一个引用。
例如:
----- --- - - ----- ------ -- ----- --- - ------ ------------------------------- -- ---- -------------------------- ----- ------ ---- -- -----
在这个示例中,我们定义了一个包含一个对象的数组。在第一个console.log()语句中,我们使用Array.prototype.includes()方法来查找对象obj是否在数组中。由于obj和数组中的对象是同一个引用,所以返回true。而在第二个console.log()语句中,我们使用包含相同属性的新对象来查找,由于它们不是同一个引用,所以返回false。
4.2 查找范围
Array.prototype.includes()方法的第二个参数fromIndex表示从哪个索引开始查找。如果省略该参数,则默认从数组的第一个元素开始查找。如果fromIndex为负数,则表示从数组末尾开始查找。
例如:
----- --- - --- -- -- -- --- --------------------------- ---- -- ---- --------------------------- ----- -- ----
在这个示例中,我们定义了一个包含5个数字的数组。在第一个console.log()语句中,我们使用Array.prototype.includes()方法来查找数字3是否在索引2之后的位置。由于数字3在数组中,所以返回true。在第二个console.log()语句中,我们使用fromIndex为负数来查找数字3是否在数组的后面三个元素中。由于数组中包含数字3,所以返回true。
4.3 NaN的比较
在使用Array.prototype.includes()方法时,需要注意NaN的比较。由于NaN与任何值都不相等(包括它自己),因此在查找NaN时,需要使用Number.isNaN()方法来判断。
例如:
----- --- - --- ---- -- -- --- ------------------------------- -- ----- ----------------------------------------- -- -
在这个示例中,我们定义了一个包含5个数字的数组,其中包含一个NaN。在第一个console.log()语句中,我们使用Array.prototype.includes()方法来查找NaN是否在数组中。由于NaN与任何值都不相等,所以返回false。在第二个console.log()语句中,我们使用Array.prototype.findIndex()方法和Number.isNaN()方法来查找数组中的NaN。由于Number.isNaN()方法可以正确判断NaN,所以返回值为1。
- 总结
Array.prototype.includes()方法是一个非常实用的数组方法,可以用来判断一个数组是否包含一个指定的值。在使用该方法时,需要注意参数类型、查找范围和NaN的比较等细节。希望本文能够对大家正确使用Array.prototype.includes()方法有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65cb6b73add4f0e0ff518749