这篇文章主要介绍了ES6中Array.includes()函数的用法,需要的朋友可以参考下

在ES5,Array已经提供了indexOf用来查找某个元素的位置,如果不存在就返回-1,但是这个函数在判断数组是否包含某个元素时有两个小不足,第一个是它会返回-1和元素的位置来表示是否包含,在定位方面是没问题,就是不够语义化。另一个问题是不能判断是否有NaN的元素。

const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]
console.log('%s', arr1.indexOf(NaN))

结果:

-1

ES6提供了Array.includes()函数判断是否包含某一元素,除了不能定位外,解决了indexOf的上述的两个问题。它直接返回true或者false表示是否包含元素,对NaN一样能有有效。

const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]
console.log('%s', arr1.includes('c'))
console.log('%s', arr1.includes('z'))
console.log('%s', arr1.includes(NaN))

结果:

true
false
true

includes()函数的第二个参数表示判断的起始位置。

const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]
console.log('%s', arr1.includes('d', 1))
console.log('%s', arr1.includes('d', 3))
console.log('%s', arr1.includes('d', 4))

结果:

true
true
false

第二个参数也可以是负数,表示从右数过来第几个,但是不改变判断搜索的方向,搜索方向还是从左到右。

console.log('%s', arr1.includes('k', -1))
console.log('%s', arr1.includes('k', -2))
console.log('%s', arr1.includes('i', -3))

结果:

false
true
false

总结

以上所述是小编给大家介绍的ES6中Array.includes()函数的用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对爱安网网站的支持!

最新资讯
拼多多低市价1000元卖茅台,茅台称没供货

拼多多低市价1000元卖

拼多多上第三方卖家销售的53度飞天茅台价格远低于市场
美团配送魏巍:开放平台业务规模已增长175%

美团配送魏巍:开放平台

美团配送总经理魏巍透露,自去年宣布对外开放即时配送能
特斯拉柏林工厂预计年底前电池和电池组生产将获批

特斯拉柏林工厂预计年

特斯拉希望能够在柏林Giga推进电池电池和电池组的生产
联想针对年轻用户发布ThinkBook新品:王源代言 4299元起

联想针对年轻用户发布

联想ThinkBook秋季新品发布会今天在联想全球总部举办,
“世界互联网教父”:金融科技或成穷人和富人间的“破壁机”

“世界互联网教父”:金

68岁的凯文·凯利表示:金融科技的“超能力”还远未用足
华为汪涛解读全场景智能联接解决方案:联接力就是生产力

华为汪涛解读全场景智

汪涛表示,联接力就是生产力,要使智能体更聪明,光算力强不
最新文章
详解Vue的ref特性的使用

详解Vue的ref特性的使

这篇文章主要介绍了详解Vue的ref特性的使用,文中通过
vue学习笔记之slot插槽基本用法实例分析

vue学习笔记之slot插

这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结
vue跳转方式(打开新页面)及传参操作示例

vue跳转方式(打开新页

这篇文章主要介绍了vue跳转方式(打开新页面)及传参操作,
vue学习笔记之过滤器的基本使用方法实例分析

vue学习笔记之过滤器

这篇文章主要介绍了vue学习笔记之过滤器的基本使用方
js获取本日、本周、本月的时间代码

js获取本日、本周、本

本篇文章给大家分享的内容是利用js如何获取本日、本周
node crawler如何添加promise支持

node crawler如何添加

这篇文章主要介绍了node crawler如何添加promise支持,