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——表单应用范例
Feb 20 Javascript
如何实现动态删除javascript函数
May 27 Javascript
ext for eclipse插件安装方法
Apr 27 Javascript
js各种验证文本框输入格式(正则表达式)
Oct 22 Javascript
js 幻灯片的实现
Dec 06 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
Nov 21 Javascript
ListBox实现上移,下移,左移,右移的简单实例
Feb 13 Javascript
关于JavaScript命名空间的一些心得
Jun 07 Javascript
学习vue.js条件渲染
Dec 03 Javascript
根据Bootstrap Paginator改写的js分页插件
Dec 25 Javascript
vue实现的网易云音乐在线播放和下载功能案例
Feb 18 Javascript
微信小程序 简易计算器实现代码实例
Sep 02 Javascript
微信小程序视图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
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
跟老齐学Python之复习if语句
2014/10/02 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
python MD5加密的示例
2020/10/19 Python
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
初级Java程序员面试题
2016/03/03 面试题
中专三年学习的个人自我评价
2013/12/12 职场文书
电子专业毕业生自我鉴定
2014/01/22 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
2014年教育实习工作总结
2014/11/22 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
春风化雨观后感
2015/06/11 职场文书
小型婚礼主持词
2015/06/30 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS