
摘要:本教程将介绍 JavaScript 数组 includes()
方法,该方法用于检查元素是否在数组中。
JavaScript 数组 includes() 方法简介
在处理数组时,您经常需要检查数组是否包含某个元素。为此,您可以使用indexOf() 方法,如下所示
let numbers = [1,2,3];
if(numbers.indexOf(2) !== -1){
// process here
}
Code language: JavaScript (javascript)
indexOf()
方法返回元素在数组中第一次出现的索引。如果数组不包含该元素,则 indexOf()
返回 -1
。
如您所见,indexOf()
方法并没有真正明确地说明其含义。此外,indexOf()
使用严格相等运算符 (===
) 进行比较,因此它不适用于 NaN
,如以下示例所示
[NaN].indexOf(NaN); // -1
Code language: JavaScript (javascript)
在本例中,数组包含一个 NaN 元素。但是,indexOf(NaN)
返回 -1
。
为了解决这个问题,开发人员想出了一个辅助函数,例如,Lodash
提供了 _.incudes()
方法,该方法用于检查数组中是否包含某个值。
ECMAScript 2016 通过提供 Array.prototype.includes()
方法对该功能进行了标准化。
includes()
方法如果数组包含给定元素,则返回 true
;否则返回 false
。
以下是 includes()
方法的语法说明
array.includes(element,fromIndex);
Code language: CSS (css)
includes()
接受两个参数
- 第一个参数是可搜索的
element
。 fromIndex
是搜索开始的数组位置。
请参见以下示例
[1,2,3].includes(2); // true
[1,2,3].includes(4); // false
[1,2,3].includes(1,1); // false
Code language: JavaScript (javascript)
与 indexOf()
方法不同,includes()
方法可以与 NaN
完美配合
[NaN].includes(NaN); // true
Code language: JavaScript (javascript)
请注意,includes()
不区分 +0
和 -0
,如以下示例所示
[-0].includes(+0); // true
Code language: JavaScript (javascript)
以下示例演示了如何使用 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
Code language: JavaScript (javascript)
在本例中
- 首先,我们用两个对象初始化了
cars
数组:ford
和toyota
。 - 然后,我们使用
includes()
方法检查cars
数组是否包含ford
对象,在这种情况下,它返回 true。 - 最后,
bmw
对象不在cars
数组中,因此includes()
方法如预期的那样返回true
。
在本教程中,您学习了如何使用 JavaScript 数组 includes()
方法来检查元素是否在数组中。
本教程是否有帮助?