这篇文章主要介绍了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()函数的用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对爱安网网站的支持!

最新资讯
特斯拉召回9500辆Model X和Model Y汽车

特斯拉召回9500辆Mode

特斯拉针对其车辆发起了两起召回,共有大约9500辆汽车受
消息称IBM将在欧洲裁员10000人 英法德是重灾区

消息称IBM将在欧洲裁

据报道,IBM正计划在欧洲裁员约1万人,以降低其增长缓慢的
阿里健康:截至2020年9月30日六个月营收71.62亿元

阿里健康:截至2020年9

阿里健康发布公告,截至2020年9月30日六个月营收71.62亿
刘晓春:我国数字货币发行应纳入到整个人民币发行统一规划中

刘晓春:我国数字货币发

刘晓春:我国数字货币发行应纳入到整个人民币发行统一规
马斯克与何小鹏:一边互喷,一边圈占资本市场

马斯克与何小鹏:一边互

马斯克与何小鹏,作为中美造车新势力的代表人物,在社交媒
收入、利润和用户,藏在小米财报里的平衡术

收入、利润和用户,藏在

已经十岁的小米显然懂得如何在短期业绩和未来成长之间
最新文章
详解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支持,