ECMAScript 2017 中的 Array.prototype.includes():更好的数组处理

阅读时长 3 分钟读完

ECMAScript 2017 中的 Array.prototype.includes():更好的数组处理

介绍

ECMAScript 2017 是 JavaScript 语言草案的第七版,已于 2017 年发布。它引入了一些新的特性和功能,包括 Array.prototype.includes() 方法。这个新的方法是用来检查一个数组是否包含一个指定的元素,如果包含,返回 true;如果不包含,返回 false。

特性

包含元素的检查已经很长时间存在于 JavaScript 中,但是在这之前,我们使用的方法是 indexOf()。然而,这个方法有一些限制。例如:

  • 它不能检查 undefined 的情况;
  • 它不能确定 NaN 是否存在于数组中;
  • 它不能区分 +0 和 -0。

Array.prototype.includes() 方法解决了这些限制。这个方法可以检查与具体值进行比较,可以匹配 NaN,还可以区分 +0 和 -0。当查找 undefined 时,它也返回 true 或 false。

语法

它的语法如下:

array.includes(valueToFind[, fromIndex])

其中,array 表示要在其中搜索的数组,valueToFind 表示要查找的值。fromIndex 是可选的,用于指定开始搜索的索引。

返回值

如果找到 valueToFind,返回 true;否则返回 false。

示例代码

以下示例说明了这个方法是如何工作的:

const arr = [0, 1, 2, 3, NaN, -0];

console.log(arr.includes(2)); // true console.log(arr.includes(-0)); // true console.log(arr.includes(NaN)); // true console.log(arr.includes(4)); // false console.log(arr.includes(undefined)); // false

在上面的代码中,我们声明了一个包含 0、1、2、3、NaN、-0 的数组。我们使用 includes() 方法来检查数组中是否存在特定的值。我们发现,它可以检查 NaN,区分 +0 和 -0,还能够正确处理 undefined 的情况。

在这个例子中,我们使用了 ES6 的 const 声明来声明一个常量数组。在这个数组中,我们使用了一些特殊的值和数字。在 JavaScript 中,NaN 是一个特殊的值,不等于任何值,包括它本身。另一个有趣的点是,+0 和 -0 是相等的,但是 includes() 方法可以区分它们。

指导意义

包含元素的检查已经存在于 JavaScript 中很长时间,但是 indexOf() 方法在某些情况下有限制。现在,Array.prototype.includes() 方法能够解决这些限制,提供了更多的功能和灵活性,给前端开发提供了更多的选择。

如果您需要在数组中搜索一个值并返回对应的布尔值,那么 includes() 方法是一个很好的选择。它可以检查包括 NaN、undefined、+0 和 -0 在内的特殊值,并提供更好的可读性和可维护性。

总结

  • includes() 方法是 ECMAScript 2017 中的特性,用于检查一个数组是否包含一个指定的元素;
  • 它可以匹配 NaN,区分 +0 和 -0,还能够正确处理 undefined 的情况;
  • 建议在需要搜索数组并返回布尔值的情况下使用它;
  • 它提供了更多的功能和灵活性,给前端开发提供了更多的选择。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64f56fd5f6b2d6eab3e26995

纠错
反馈

纠错反馈