ECMAScript 2017 中的新特性之 Array.prototype.includes 方法

阅读时长 3 分钟读完

ECMAScript 2017 中的新特性之 Array.prototype.includes 方法

在 ECMAScript 6 中,我们已经看到了很多对数组方法的改进,如箭头函数、展开操作符等等。而在 ECMAScript 2017 中,又加入了新的方法——Array.prototype.includes。

Array.prototype.includes 是一个非常方便的方法,用于判断一个数组是否包含某个值。在以前,我们需要用 indexOf 方法,但是这个方法的局限性在于,不能够查找 NaN。而 Array.prototype.includes 完全解决了这个问题。

使用方法

Array.prototype.includes 方法非常容易使用。只需要传一个参数,即可判断该值是否存在于数组中。若存在,返回 true;否则,返回 false。

下面让我们来举几个实例。比如下面这个数组:

var arr = [1, 2, 3];

我们来使用 Array.prototype.includes 判断它是否包含 2:

console.log(arr.includes(2)); // true

再来看一下,如果我们使用 indexOf 来判断该数组是否包含 NaN 呢?(因为其实 indexOf 方法对于 NaN 的判断是有问题的)

var arr = [NaN];

console.log(arr.indexOf(NaN)); // -1

现在,我们把上面这个例子使用 Array.prototype.includes 重写一下:

var arr = [NaN];

console.log(arr.includes(NaN)); // true

通过以上两个例子,我们可以看到 Array.prototype.includes 的优越性。

应用案例

  1. 判断是否存在某个值

我们可以使用 Array.prototype.includes 来判断数组中是否包含某个值:

var arr = [1, 2, 3];

console.log(arr.includes(2)); // true

  1. 检查 NaN

使用 Array.prototype.includes,我们可以方便地检查数组中是否包含 NaN。因为 indexOf 方法不能检查 NaN,所以 Array.prototype.includes 能够更好地满足我们的需求:

var arr = [1, NaN, 3];

console.log(arr.includes(NaN)); // true

  1. 判断数组是否为空

如果数组为空,我们可以使用 Array.prototype.includes 来判断:

var arr = [];

console.log(arr.includes(2)); // false

  1. 检查 index

我们可以使用 Array.prototype.includes 来寻找某个值在数组中的 index:

var arr = [1, 2, 3];

console.log(arr.includes(2, 1)); // true

在这个例子中,我们在第二个参数中传入 index,它会从该位置开始寻找该值。如果找到了,就返回 true。否则,返回 false。

总结

在 ECMAScript 2017 中,Array.prototype.includes 成为了我们处理数组值时的一个必备工具,可以方便地寻找值,检查 NaN 和 index。与 indexOf 方法相比,Array.prototype.includes 更具有灵活性和易用性。

了解 Array.prototype.includes 的功能,能够更方便地处理数组相关操作,也能够提高代码的可读性。希望本文能够帮助大家更好地使用这个新特性。

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

纠错
反馈