
ES6数组includes()方法使用示例解析
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本文详细解析了ES6中数组的includes()方法,通过具体实例展示了如何判断数组中是否包含某个元素,帮助开发者更高效地编写代码。
在ES6中,`Array.prototype.includes()` 方法是一个非常实用的新特性,用于判断数组是否包含给定的值。此方法返回一个布尔值:如果数组存在指定元素,则返回 `true`;否则返回 `false`。这与字符串的 `includes()` 方法类似,提供了更加直观和语义化的检查方式。
例如:
```javascript
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true
```
`includes()` 方法接受一个可选的第二个参数,用于指定搜索起始位置。默认情况下从数组开头(索引0)开始搜索;如果传入负数,则表示从末尾算起的位置。需要注意的是,若该数值为负且其绝对值大于数组长度时,起始位置将被重置为 0。
```javascript
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
```
与 `indexOf()` 方法相比,`includes()` 具有两个显著优势:一是它直接返回布尔值,更符合直觉;二是对于 `NaN` 的处理更为正确。虽然 `indexOf(NaN)` 总是返回 `-1`(因为使用严格相等性检查),但 `includes()` 会正确地识别并返回 `true`。
为了兼容不支持 `includes()` 方法的旧环境,可以部署如下代码:
```javascript
const contains = (() =>
Array.prototype.includes ?
(arr, value) => arr.includes(value) :
(arr, value) => arr.some(el => el === value)
)();
```
这段代码首先检查是否存在原生的 `Array.prototype.includes`。如果存在,则使用该方法;否则,采用 `some()` 方法作为替代方案。
除了数组之外,ES6 还为 `Map` 和 `Set` 数据结构提供了类似的方法:
- 使用 `has(key)` 检查键名是否存在于映射中。
- 使用 `has(value)` 判断值是否存在集合内。
总之,`Array.prototype.includes()` 方法是 ES6 中增强数组操作的重要工具之一。它提供了一种更简洁、直观的方式来判断一个特定元素是否在数组里存在,并有助于编写更清晰易懂的 JavaScript 代码。
全部评论 (0)


