JavaScript检查元素是否在数组中:includes()使用示例
作者:admin 时间:2022-7-13 10:43:26 浏览:本文将介绍includes()检查元素是否在数组中的 JavaScript Array 方法。
indexOf()方法的缺陷
使用数组时,你经常需要检查数组是否包含某元素。为此,你可以使用indexOf()等方法,参考JS数组元素定位方法使用区别:indexOf()、find()和findIndex(),如下所示:
let numbers = [1,2,3];
if(numbers.indexOf(2) !== -1){
// process here
}
indexOf()方法返回数组中第一次出现的元素的索引。如果数组不包含元素,则indexOf()返回-1。
此外,indexOf()使用严格相等运算符 ( ===) 进行比较,因此,它不适用NaN,如下例所示:
[NaN].indexOf(NaN); // -1
在此示例中,数组包含一个 NaN 元素。然而,indexOf(NaN)回报-1。
includes()方法弥补了indexOf()方法的缺陷
为了解决这个问题,开发人员想出了一个辅助函数。
ECMAScript 2016 通过提供Array.prototype.includes()方法标准化了这个功能。
如果数组包含给定元素,则该includes()方法返回true;否则,它返回false。
下面说明了该includes()方法的语法:
array.includes(element,fromIndex);
includes()接受两个参数:
- 第一个参数是
element可以搜索的。 fromIndex是数组中搜索开始的位置。
请参见以下示例:
[1,2,3].includes(2); // true
[1,2,3].includes(4); // false
[1,2,3].includes(1,1); // false
与indexOf()方法不同,includes()方法对NaN工作得非常好:
[NaN].includes(NaN); // true
请注意,includes()不区分+0和-0,如下例所示:
[-0].includes(+0); // true
includes()方法使用示例
下面的示例演示如何使用includes()方法检查对象是否在数组中。
let bmw = {name: 'BMW' },
toyota = { name: 'Toyota'},
ford = {name: 'Ford'}
let cars = [ford, toyota];
console.log(cars.includes(ford)); // true
console.log(cars.includes(bmw)); // false在这个例子中:
首先,我们用两个对象初始化cars数组:ford和toyota。
然后,我们使用该includes()方法检查cars数组是否包含ford对象,在这种情况下,它返回true。
最后, bmw对象不在 cars数组中,因此includes()方法按预期返回false。
总结
在本文中,我们学习了如何使用 JavaScript Array includes()方法检查元素是否在数组中。
相关文章



