ES7 中的 Array.prototype.includes:避免使用 indexOf
在 JavaScript 中,Array.prototype.includes 是 ES7 中新增的一个方法,它可以用来判断一个数组是否包含某个元素。与 indexOf 不同的是,includes 不会返回索引,而是返回一个布尔值。
在本文中,我们将深入探讨 Array.prototype.includes 的用法以及其与 indexOf 的区别,并提供示例代码来帮助您更好地理解。
- 基本语法
Array.prototype.includes 的基本语法如下:
arr.includes(searchElement[, fromIndex])
其中,arr 是要进行查找的数组,searchElement 是要查找的元素,fromIndex 是可选的,表示要从数组的哪个索引开始查找。
如果数组中包含 searchElement,includes 返回 true,否则返回 false。
- 与 indexOf 的区别
与 indexOf 不同的是,includes 不会返回元素的索引,而是返回一个布尔值。这意味着,如果您只需要知道一个元素是否在数组中,那么 includes 更适合使用。
另外,includes 还有一个优点,就是它可以正确处理 NaN 和 undefined。例如:
const arr = [NaN]; console.log(arr.includes(NaN)); // true const arr2 = [undefined]; console.log(arr2.includes(undefined)); // true
而使用 indexOf 则会返回 -1。
- 示例代码
以下是一些示例代码,展示了 includes 的用法以及其与 indexOf 的区别。
// javascriptcn.com 代码示例 const arr = [1, 2, 3, 4, 5]; // 使用 includes 查找元素 console.log(arr.includes(3)); // true // 使用 indexOf 查找元素 console.log(arr.indexOf(3) !== -1); // true // 使用 includes 判断是否包含 NaN const arr2 = [NaN]; console.log(arr2.includes(NaN)); // true // 使用 indexOf 判断是否包含 NaN console.log(arr2.indexOf(NaN) !== -1); // false // 使用 includes 判断是否包含 undefined const arr3 = [undefined]; console.log(arr3.includes(undefined)); // true // 使用 indexOf 判断是否包含 undefined console.log(arr3.indexOf(undefined) !== -1); // true
- 总结
在本文中,我们深入探讨了 ES7 中新增的 Array.prototype.includes 方法的用法以及其与 indexOf 的区别。我们发现,includes 更适合用于查找元素是否存在于数组中,并且可以正确处理 NaN 和 undefined。
因此,我们建议在需要判断一个元素是否存在于数组中时,尽可能使用 includes 方法,避免使用 indexOf。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65718279d2f5e1655da2dc19