ES6+ includes()使用方法详解
发布时间:2023-03-24 14:22:43 所属栏目:教程 来源:
导读:在字符串中我们学习了 includes () 方法,在数组中同样存在 includes () 方法,用来查找数组。includes () 的存在是为了取代 indexOf () 方法而设计的, indexOf() 在数组查找时存在一定缺陷,对于数组中元素是 unde
|
在字符串中我们学习了 includes () 方法,在数组中同样存在 includes () 方法,用来查找数组。includes () 的存在是为了取代 indexOf () 方法而设计的, indexOf() 在数组查找时存在一定缺陷,对于数组中元素是 undefined、NaN 时查找的结果是有问题的。为了保持语法的一致性和简洁性 indexOf () 方法也是有必要的,本节我们就来学习数组中的 includes() 方法。 includes () 方法用于查找一个数组中是否包含一个指定的元素,并返回一个布尔值,如果包含返回 true 否则返回 false。 使用语法: arr.includes(valuetoFind[, fromIndex]) 参数解释: 参数 描述 valuetoFind 需要查找的目标值 fromIndex (可选)从 fromIndex 索引处开始查找 valuetoFind。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜 (就是从末尾开始往前跳 fromIndex 的绝对值个索引,然后往后搜寻)。默认为 0。 语法实例: var arr = ['imooc', 'ES6', 'wiki']; console.log(arr.includes('ES6')); // true 和字符串中的 includes() 方法一样,当没有参数时,includes() 方法会把第一个参数置成 undefined,注意,不同的是这里的 undefined 不是字符串 “undefined”。如下实例: [undefined].includes(); // true ['undefined'].includes(); // false indexOf() 在查询数组中元素时存在一些问题,下面我们就来看看为什么 ES6 要引入 includes() 方法。 在 ES5 中使用 indexOf() 方法在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回 -1。但是查找数组时存在一定缺陷,indexOf 不能判断数组中是否有 NaN,对于数组中的空项也不能判断。 var arr1 = [,,,,,]; var arr2 = [null, undefined, ]; console.log(arr1[], arr1[]) // undefined undefined arr1.indexOf(undefined) // -1 arr2.indexOf(); // -1 上面的代码可以看到,在第 1 行中数组的每一项都是空的, 使用 indexOf() 查找返回的结果为 -1,没有查到 undefined 值,但从第 3 行打印的结果可以看到其实空数组的每一项都是 undefined。另外,还有个问题 indexOf() 不能解决,数组中有 NaN 时查询不了,返回的结果也是 -1。ES6 的includes() 可以完美解决上面的问题,看如下示例: [,,,,,].includes(undefined) // true [null, undefined, ].includes()] // true 从上面的代码可以看出,使用 includes() 查询可以得到正确的结果。 indexOf 返回的是数值型的,而 includes 返回的是布尔型的,方便逻辑判断。如下实例: var arr = ['imooc', 'ES6', 'wiki']; if (arr.includes('ES6')) { // todo } if (arr.indexOf('ES6') !== -) { // todo } (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
