
摘要:本教程将介绍 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); // -1Code 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); // falseCode language: JavaScript (javascript)与 indexOf() 方法不同,includes() 方法可以与 NaN 完美配合
[NaN].includes(NaN); // trueCode language: JavaScript (javascript)请注意,includes() 不区分 +0 和 -0,如以下示例所示
[-0].includes(+0); // trueCode 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)); // falseCode language: JavaScript (javascript)在本例中
- 首先,我们用两个对象初始化了
cars数组:ford和toyota。 - 然后,我们使用
includes()方法检查cars数组是否包含ford对象,在这种情况下,它返回 true。 - 最后,
bmw对象不在cars数组中,因此includes()方法如预期的那样返回true。
在本教程中,您学习了如何使用 JavaScript 数组 includes() 方法来检查元素是否在数组中。
本教程是否有帮助?