ES6中Array.includes()函数的用法


Posted in Javascript onSeptember 20, 2017

在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()函数的用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQuery 学习笔记 选择器之一
Jul 23 Javascript
js取滚动条的尺寸的函数代码
Nov 30 Javascript
上传的js验证(图片/文件的扩展名)
Apr 25 Javascript
js动态创建表格,删除行列的小例子
Jul 20 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
May 27 Javascript
全面解析多种Bootstrap图片轮播效果
May 27 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
Sep 21 Javascript
如何通过setTimeout理解JS运行机制详解
Mar 23 Javascript
JavaScript自定义超时API代码实例
Apr 30 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
vue-router为激活的路由设置样式操作
Jul 18 Javascript
jQuery实现购物车全功能
Jan 11 jQuery
微信小程序视图template模板引用的实例详解
Sep 20 #Javascript
highcharts 在angular中的使用示例代码
Sep 20 #Javascript
jQuery实现可兼容IE6的滚动监听功能
Sep 20 #jQuery
Bootstrap Table快速完美搭建后台管理系统
Sep 20 #Javascript
VUE页面中加载外部HTML的示例代码
Sep 20 #Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
Sep 20 #Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 #Javascript
You might like
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
PHP常用处理静态操作类
2015/04/03 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
Python selenium如何设置等待时间
2016/09/15 Python
python数据结构之链表详解
2017/09/12 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
python接入支付宝的实例操作
2020/07/20 Python
PyTorch安装与基本使用详解
2020/08/31 Python
python 实现逻辑回归
2020/12/30 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
医学生个人求职信范文
2013/09/24 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
2014年销售工作总结
2014/12/01 职场文书
2015新年寄语大全
2014/12/08 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
MySQL 如何设计统计数据表
2021/06/15 MySQL
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis