JS数组includes方法

在JavaScript中,我们经常需要在数组中搜索特定的值。为了简化这一过程,ES6引入了数组的includes()方法。这个方法非常方便,可以帮助我们快速地检查数组中是否包含特定值。
includes()方法的语法
includes()方法接收一个参数:要查找的值。如果数组中包含这个值,方法将返回true,否则返回false。该方法的语法如下所示:
arr.includes(searchElement[, fromIndex])
searchElement: 要查找的值。fromIndex(可选): 开始搜索的位置,默认为0。如果fromIndex为负数,则从数组末尾的第-fromIndex个索引开始搜索。
includes()方法返回一个布尔值,表示数组中是否包含指定的值。
includes()方法的示例
让我们通过几个示例来演示includes()方法的用法。
示例1:简单的数组搜索
const arr = [1, 2, 3, 4, 5];
console.log(arr.includes(3)); // true
console.log(arr.includes(6)); // false
在这个示例中,我们有一个包含数字1到5的数组arr。我们使用includes()方法来检查数组中是否包含值3和值6。结果分别为true和false。
示例2:使用fromIndex参数
const arr = ['apple', 'banana', 'orange', 'mango'];
console.log(arr.includes('banana', 2)); // false
console.log(arr.includes('banana', 1)); // true
在这个示例中,我们有一个包含水果名称的数组arr。我们使用includes()方法来检查数组中是否包含值’banana’,并分别指定fromIndex为2和1。结果分别为false和true。
示例3:检查NaN
const arr = [1, 2, NaN, 4, 5];
console.log(arr.includes(NaN)); // true
在JavaScript中,NaN与自身不相等,因此常规的比较方法可能无法正确检测NaN。但是,includes()方法使用严格相等操作符===来比较值,因此可以正确检测NaN。在这个示例中,我们演示了如何使用includes()方法来检查数组中是否包含NaN。
常见问题
1. includes() vs indexOf()
includes()方法与indexOf()方法类似,但有一些关键的区别:
includes()返回一个布尔值,而indexOf()返回找到的元素的索引,如果未找到则返回-1。includes()不会更改原始数组,而indexOf()会修改数组。
2. 不支持IE浏览器
需要注意的是,includes()方法不支持IE浏览器。如果需要在IE浏览器中使用includes()方法,可以使用第三方库如lodash提供的替代方法。
总结
includes()方法是一个非常方便的数组方法,可以帮助我们快速地检查数组中是否包含特定值。在日常开发中,我们经常需要对数组中的元素进行搜索操作,includes()方法提供了一种简单且易于理解的解决方案。
极客笔记