在 JavaScript 中,数组是一种非常常见的数据结构,它可以帮助我们存储和操作一组数据。在 ES7 中,新增了一个实用的数组方法:array.prototype.includes。这个方法可以让我们更方便地检查数组中是否包含某个元素。本文将详细介绍 array.prototype.includes 的用法和特性,并给出一些示例代码和应用场景。
array.prototype.includes 的用法
array.prototype.includes 的用法非常简单,它的基本语法如下:
array.includes(searchElement[, fromIndex])
其中,array 表示要检查的数组,searchElement 表示要查找的元素,fromIndex 表示从哪个索引位置开始查找。如果省略 fromIndex 参数,则默认从数组的第一个元素开始查找。
array.prototype.includes 方法会返回一个布尔值,表示数组中是否包含指定的元素。如果包含,则返回 true,否则返回 false。
下面是一个简单的示例:
const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(3)); // true console.log(arr.includes(6)); // false
在上面的代码中,我们定义了一个数组 arr,然后使用 arr.includes 方法来检查数组中是否包含某个元素。第一次调用 includes 方法时,我们传入了 3 作为参数,因为数组中确实包含 3,所以返回 true。第二次调用 includes 方法时,我们传入了 6 作为参数,因为数组中并不包含 6,所以返回 false。
array.prototype.includes 的特性
array.prototype.includes 方法有一些值得注意的特性,下面是一些常见的用法和注意事项。
可以检查 NaN
array.prototype.includes 方法可以正确地检查 NaN,即使数组中包含 NaN,也能够返回正确的结果。这是因为 includes 方法使用了 strict equality operator(===)来比较元素,而 NaN === NaN 的结果为 false。
const arr = [1, 2, NaN]; console.log(arr.includes(NaN)); // true
可以从指定索引位置开始查找
array.prototype.includes 方法可以从指定的索引位置开始查找元素。如果指定的索引位置大于等于数组的长度,则返回 false。如果指定的索引位置为负数,则从数组末尾开始计算。下面是一些示例代码:
const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(3, 2)); // true,从索引 2 开始查找 console.log(arr.includes(3, 3)); // false,从索引 3 开始查找 console.log(arr.includes(3, -3)); // false,从索引 2(倒数第三个元素)开始查找 console.log(arr.includes(3, -2)); // true,从索引 3(倒数第二个元素)开始查找
不会改变原数组
array.prototype.includes 方法不会改变原数组,它只是用来检查数组中是否包含指定的元素。
array.prototype.includes 的应用场景
array.prototype.includes 方法可以用在很多场景中,下面是一些常见的应用场景。
检查数组中是否包含某个元素
最常见的用法就是检查数组中是否包含某个元素。这个场景非常常见,比如在搜索框中输入关键字,然后检查搜索结果中是否包含这个关键字。
const arr = ['apple', 'banana', 'orange']; const keyword = 'banana'; if (arr.includes(keyword)) { console.log(`Found ${keyword} in the array.`); } else { console.log(`Can't find ${keyword} in the array.`); }
检查字符串中是否包含某个子串
array.prototype.includes 方法不仅可以用来检查数组中是否包含某个元素,还可以用来检查字符串中是否包含某个子串。
const str = 'hello world'; const keyword = 'world'; if (str.includes(keyword)) { console.log(`Found ${keyword} in the string.`); } else { console.log(`Can't find ${keyword} in the string.`); }
检查对象数组中是否包含某个对象
如果你有一个对象数组,想要检查其中是否包含某个对象,也可以使用 array.prototype.includes 方法。
-- -------------------- ---- ------- ----- --- - - - ----- -------- ------ - -- - ----- --------- ------ - -- - ----- --------- ------ - -- -- ----- --- - - ----- --------- ------ - -- -- -------------- -- -------------------- --- --------------------- - ------------------ ---------------------- -- --- --------- - ---- - ------------------ ---- ---------------------- -- --- --------- -
在上面的代码中,我们使用了 Array.prototype.some 方法来遍历数组,然后使用 JSON.stringify 方法将对象转换为字符串,再使用 array.prototype.includes 方法来检查数组中是否包含这个字符串。
结论
array.prototype.includes 是一个非常实用的 JavaScript 实用程序,它可以让我们更方便地检查数组中是否包含某个元素。在实际开发中,我们可以根据具体的情况来选择使用它,以提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6745c5aaf84d1ff10348d5dd