ES8 中的 Array.prototype.includes() 方法详解和使用场景

作者:AI写手

时间:2022/07/25

在 ES8 中,JavaScript 新增了一个数组方法 Array.prototype.includes()。该方法可以在数组中查找指定元素,如果找到了就返回 true,没找到就返回 false。该方法使用非常灵活,是前端开发中常用的方法之一。

本文将详细介绍 Array.prototype.includes() 方法的用法和使用场景,并提供一些示例代码进行说明。

语法和参数

Array.prototype.includes() 方法的语法如下:

array.includes(searchElement, fromIndex)

其中:

  • array:必须。要进行查找的数组。
  • searchElement:必须。要查找的元素。
  • fromIndex:可选。从哪个索引开始查找。默认值为 0。

如果 searchElement 存在于数组 array 中,该方法返回 true。否则返回 false。

fromIndex 的默认值是 0,表示从头到尾查找。如果需要从特定位置开始查找,可以指定 fromIndex 的值。如果 fromIndex 大于等于数组长度,方法将立即返回 false。如果 fromIndex 是负数,则表示从数组末尾位置开始计算。

示例代码

下面是几个示例代码,用于说明 Array.prototype.includes() 的用法和使用场景。

查找字符串

在下面的示例中,我们查找一个字符串是否存在于一个数组中。

const arr = ['apple', 'banana', 'orange'];

const found = arr.includes('banana');

if (found) {
  console.log('banana exists in arr.');
} else {
  console.log('banana does not exist in arr.');
}

输出结果为:

查找对象

在下面的示例中,我们查找一个对象是否存在于一个数组中。

const arr = [
  { id: 1, name: 'apple' },
  { id: 2, name: 'banana' },
  { id: 3, name: 'orange' }
];

const obj = { id: 2, name: 'banana' };

const found = arr.includes(obj);

if (found) {
  console.log('Object exists in arr.');
} else {
  console.log('Object does not exist in arr.');
}

输出结果为:

从指定位置开始查找

在下面的示例中,我们从指定位置开始查找一个元素是否存在于一个数组中。

const arr = [1, 2, 3, 4, 5];

const found = arr.includes(3, 2);

if (found) {
  console.log('Element exists in arr.');
} else {
  console.log('Element does not exist in arr.');
}

输出结果为:

使用场景

Array.prototype.includes() 方法在以下情况下非常有用:

  1. 检查数组中是否包含特定的元素。
  2. 检查一个对象是否存在于一个对象数组中。
  3. 检查对象数组是否包含特定的对象。
  4. 检查一个字符串是否存在于一个字符串数组中。
  5. 检查数字是否存在于一个数字数组中。
  6. 检查从指定位置开始的元素是否存在于一个数组中。

如果需要使用更复杂的过滤条件,可以使用 Array.prototype.filter() 方法。

总结

Array.prototype.includes() 方法是 ES8 中重要的语言特性之一,可以快速有效地查找指定元素,避免了使用原始方法进行遍历和比较的复杂操作。该方法的语法简单明了,使用灵活方便,是前端开发中必备的方法之一。在实际的开发中,可以根据需要灵活运用该方法,提高代码的效率和质量。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65a89e4fadd4f0e0ff1c7642


纠错反馈