在ES8(ECMAScript 2017)中,Array.prototype.includes() 方法被引入到了 JavaScript 中。这个方法用于判断一个数组是否包含一个指定的值,如果包含则返回 true,否则返回 false。本文将详细介绍该方法的使用方法和注意事项。
语法
Array.prototype.includes(searchElement, fromIndex)
- searchElement:必选项,要搜索的元素。
- fromIndex:可选项,从该位置开始搜索。如果 fromIndex 为负数,则从数组末尾开始计算。
返回值
如果数组中包含指定的元素,则返回 true,否则返回 false。
示例
const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(3)); // true console.log(arr.includes(6)); // false console.log(arr.includes(3, 2)); // true console.log(arr.includes(3, 3)); // false
注意事项
- Array.prototype.includes() 方法与 Array.prototype.indexOf() 方法的不同之处在于前者可以正确处理 NaN 和 -0。
- 当搜索元素为 NaN 时,Array.prototype.includes() 方法会返回 true。而 Array.prototype.indexOf() 方法会返回 -1。
- 当搜索元素为 -0 时,Array.prototype.includes() 方法会返回 true。而 Array.prototype.indexOf() 方法会返回 0。
- 如果 fromIndex 大于等于数组的长度,则返回 false。
- 如果 fromIndex 为负数,则从数组末尾开始计算。如果负数的绝对值大于等于数组的长度,则从数组头开始计算。
- Array.prototype.includes() 方法不会改变原数组。
使用场景
Array.prototype.includes() 方法可以用于判断一个数组中是否包含某个元素。在开发中,我们经常需要判断一个元素是否在一个数组中,此时可以使用该方法来简化代码。
if (arr.includes(val)) { // 数组中包含指定元素时执行的代码 }
此外,当我们需要判断一个元素是否为 NaN 或 -0 时,也可以使用该方法。
if (arr.includes(NaN)) { // 数组中包含 NaN 时执行的代码 } if (arr.includes(-0)) { // 数组中包含 -0 时执行的代码 }
总结
Array.prototype.includes() 方法是 ES8 中新增的一个数组方法,用于判断一个数组是否包含一个指定的值。该方法可以正确处理 NaN 和 -0,同时也可以指定搜索起始位置。在开发中,该方法可以用于简化代码,同时也可以用于判断 NaN 和 -0。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6557052ed2f5e1655d1678ed