JavaScript 数组 includes:检查元素是否在数组中

JavaScript Array Includes

摘要:本教程将介绍 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 数组:fordtoyota
  • 然后,我们使用 includes() 方法检查 cars 数组是否包含 ford 对象,在这种情况下,它返回 true。
  • 最后,bmw 对象不在 cars 数组中,因此 includes() 方法如预期的那样返回 true

在本教程中,您学习了如何使用 JavaScript 数组 includes() 方法来检查元素是否在数组中。

本教程是否有帮助?