ES7 中 Array.prototype.includes 方法的使用与注意事项

阅读时长 4 分钟读完

前言

在 ES7 中,新增了一个 Array.prototype.includes 方法,用于判断一个数组中是否包含某个元素。该方法的使用非常方便,但是在使用时也需要注意一些细节和注意事项。本文将详细介绍该方法的使用和注意事项,并提供一些示例代码,希望能够对前端开发工程师有所帮助。

Array.prototype.includes 方法的使用

Array.prototype.includes 方法用于判断一个数组中是否包含某个元素,其语法如下:

其中,array 是要进行判断的数组,searchElement 是要查找的元素,fromIndex 是可选的参数,表示从哪个索引开始查找。该方法返回一个布尔值,表示是否包含该元素。

下面是一个简单的示例代码:

在上面的代码中,arr.includes(3) 返回 true,表示数组 arr 中包含元素 3,而 arr.includes(6) 返回 false,表示数组 arr 中不包含元素 6。

需要注意的是,Array.prototype.includes 方法是区分类型的,即它会将要查找的元素和数组中的元素进行类型比较,只有在类型相同的情况下才会判断是否相等。下面是一个示例代码:

在上面的代码中,arr.includes('2') 返回 false,即使数组中包含元素 2,但是由于要查找的元素是一个字符串,而数组中的元素是一个数字,因此返回 false。

注意事项

在使用 Array.prototype.includes 方法时,需要注意以下几点:

1. fromIndex 参数的使用

Array.prototype.includes 方法的第二个参数 fromIndex 表示从哪个索引开始查找,如果省略该参数,则默认从 0 开始查找。需要注意的是,如果 fromIndex 的值为负数,则表示从数组末尾开始查找,例如:

在上面的代码中,arr.includes(3, -2) 返回 false,因为从倒数第二个元素开始查找,而 4 不等于 3。

2. NaN 的处理

由于 NaN 不等于任何值,因此在使用 Array.prototype.includes 方法查找 NaN 时需要特别注意。例如:

在上面的代码中,arr.includes(NaN) 返回 true,因为数组中包含 NaN。

3. 对象的处理

如果要查找的元素是一个对象,那么只有当数组中的元素和要查找的元素是同一个对象时才会返回 true。例如:

在上面的代码中,arr.includes(obj) 返回 true,因为数组中的元素和要查找的元素是同一个对象。而 arr.includes({name: 'Tom'}) 返回 false,因为虽然数组中的元素和要查找的元素的属性值相同,但它们是不同的对象。

总结

Array.prototype.includes 方法是一个非常实用的方法,可以方便地判断一个数组中是否包含某个元素。在使用该方法时,需要注意 fromIndex 参数的使用、NaN 的处理以及对象的处理等细节。希望本文能够对读者有所帮助,让大家能够更加熟练地使用该方法。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/650ea24895b1f8cacd7b9324

纠错
反馈