前言
ECMAScript 2017 引入了一个新方法:Array.prototype.includes(),该方法可以用来判断一个数组是否包含某个元素,它与 Array.prototype.indexOf() 的功能很相似,但是使用方式更为简洁,让我们来看看如何使用这个新方法。
includes() 方法的作用
includes() 方法的作用是检查一个数组中是否包含一个指定的值,如果包含则返回 true,否则返回 false。它的语法如下:
arr.includes(valueToFind[, fromIndex])
其中,arr 是要搜索的数组,valueToFind 是要查找的元素,fromIndex 是可选参数,表示从哪个索引开始查找元素。
includes() 方法的使用
基本用法
我们来看一个简单的例子,在一个数组中查找是否包含特定的元素:
const fruits = ['apple', 'banana', 'orange']; console.log(fruits.includes('banana')); // true console.log(fruits.includes('pear')); // false
指定起始索引
使用第二个参数指定查找元素的起始索引:
const fruits = ['apple', 'banana', 'orange']; console.log(fruits.includes('banana', 1)); // true console.log(fruits.includes('banana', 2)); // false
区分 NaN
对于元素为 NaN 的情况,includes() 也可以正确地进行处理:
const nums = [1, 2, NaN, 4]; console.log(nums.includes(NaN)); // true
注意事项
需要注意的是,includes() 方法使用的是严格相等(===)比较,所以对于复杂数据类型,如对象和数组,需要注意比较引用的地址值而不是值本身。
总结
Array.prototype.includes() 方法是 ECMAScript 2017 引入的一个实用方法,可以用来检测数组中是否包含某个元素。它的使用方法简单,与 Array.prototype.indexOf() 相比更为直观。使用 includes() 方法可以使代码更为简洁,提高开发效率。
示例代码
// javascriptcn.com 代码示例 const nums = [1, 2, 3, 4, 5]; console.log(nums.includes(3)); // true console.log(nums.includes(6)); // false console.log(nums.includes(1, 1)); // false console.log(nums.includes(1, 0)); // true const objs = [{id: 1}, {id: 2}, {id: 3}]; console.log(objs.includes({id: 2})); // false console.log(objs.includes(objs[1])); // true
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654df3867d4982a6eb74e80b