在前端开发中,数组是一种非常常用的数据结构,经常需要对数组进行检索、筛选、排序等操作。ES7 引入了一个新的数组方法 includes(),可以更加方便地进行数组元素的查找,本文将详细介绍这个方法的用法和注意事项。
includes() 方法的基本用法
includes() 方法用于判断一个数组是否包含指定的值,返回值为布尔类型(true 或 false)。它的语法如下:
array.includes(valueToFind[, fromIndex])
其中,valueToFind 是要查找的值,fromIndex 是可选参数,表示从哪个索引开始查找,默认值为 0。如果指定了 fromIndex,则从该索引开始往后查找,否则从数组的第一个元素开始查找。
下面是一个简单的示例:
const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(3)); // true console.log(arr.includes(6)); // false
includes() 方法的注意事项
- includes() 方法对 NaN 的处理
includes() 方法可以正确处理 NaN 值的情况,即如果数组中包含 NaN,调用 includes() 方法时会返回 true。这是因为 includes() 方法内部使用了 Object.is() 方法来比较值,它可以正确处理 NaN 的情况。
const arr = [1, 2, NaN, 4, 5]; console.log(arr.includes(NaN)); // true
- includes() 方法对相同值的处理
includes() 方法会使用严格相等运算符(===)来比较值,即只有在值和类型都相同的情况下才会返回 true。这意味着,如果数组中包含两个相同的值,调用 includes() 方法时只会返回第一个值所在的位置。
const arr = [1, 2, 2, 3, 4]; console.log(arr.includes(2)); // true
- includes() 方法不改变原数组
includes() 方法不会改变原数组,它只是用来进行查找操作,不会对数组进行修改。
includes() 方法的应用
includes() 方法可以用来检查一个数组中是否包含某个值,可以用来替代 indexOf() 方法。它也可以用来检查一个字符串是否包含某个子串,只需要将字符串转换为数组再使用 includes() 方法即可。
下面是一个稍微复杂一些的示例,使用 includes() 方法来判断一个字符串中是否包含某个子串:
const str = "hello world"; console.log(str.includes("world")); // true console.log(str.includes("goodbye")); // false
总结
includes() 方法是 ES7 中新增的一个数组方法,用于检查一个数组中是否包含某个值。它可以正确处理 NaN 的情况,使用严格相等运算符进行比较,不会改变原数组。在实际开发中,可以使用 includes() 方法来替代 indexOf() 方法,进行更加方便的数组元素查找。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65fa9725d10417a222670b4c