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 的优越性。
应用案例
- 判断是否存在某个值
我们可以使用 Array.prototype.includes 来判断数组中是否包含某个值:
var arr = [1, 2, 3];
console.log(arr.includes(2)); // true
- 检查 NaN
使用 Array.prototype.includes,我们可以方便地检查数组中是否包含 NaN。因为 indexOf 方法不能检查 NaN,所以 Array.prototype.includes 能够更好地满足我们的需求:
var arr = [1, NaN, 3];
console.log(arr.includes(NaN)); // true
- 判断数组是否为空
如果数组为空,我们可以使用 Array.prototype.includes 来判断:
var arr = [];
console.log(arr.includes(2)); // false
- 检查 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