ES7 中的 Array.prototype.includes() 方法使用技巧合集

在 ES7 中,新增了一个 Array 原型方法 includes(),用于判断数组是否包含某个元素。相较于传统的 indexOf 方法,includes() 更加简洁明了,同时也避免了一些可能的误判。在本文中,我们将会介绍 includes() 方法的使用技巧,以及一些注意事项。

基本用法

includes() 方法的基本用法非常简单,只需要在数组对象上调用该方法,并传入需要查找的元素即可。以下是一个简单的示例:

可选参数

除了查找元素之外,includes() 还可以接受一个可选参数 fromIndex,用于指定查找的起始位置。如果省略该参数,则默认从数组的第一个元素开始查找。以下是一个示例:

需要注意的是,如果 fromIndex 参数为负数,则会从数组末尾开始计算索引。例如:

与其他方法的比较

includes() 方法类似于传统的 indexOf 方法,但是它们之间还是有一些区别的。以下是一个比较 includes()indexOf 的示例:

可以看到,在查找 NaN 元素时,includes() 方法返回了 true,而 indexOf 方法返回了 -1。这是因为 includes() 方法使用了 Object.is() 方法来比较元素,而 indexOf 方法使用了 === 运算符。由于 NaN === NaN 的结果为 false,因此 indexOf 方法无法正确地查找 NaN 元素。

另外,当使用 fromIndex 参数时,includes() 方法与 indexOf 方法的行为也有所不同。在示例中,includes(1, -3) 返回了 false,而 indexOf(1, -3) 返回了 0。这是因为 includes() 方法会将负数的 fromIndex 参数转化为正数,而 indexOf 方法则不会。

总结

includes() 方法是一个非常实用的数组方法,可以帮助我们更加方便地查找数组中的元素。在使用该方法时,需要注意其默认使用 Object.is() 方法来比较元素,因此在查找 NaN 元素时需要格外小心。此外,还需要注意 fromIndex 参数的使用,以避免出现意外的结果。

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


纠错
反馈