ES6中Array.find()和findIndex()函数的用法详解


Posted in Javascript onSeptember 16, 2017

ES6为Array增加了find(),findIndex函数。

find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined。

findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。

他们的都是一个查找回调函数。

[1, 2, 3, 4].find((value, index, arr) => {
})

查找函数有三个参数。

value:每一次迭代查找的数组元素。

index:每一次迭代查找的数组元素索引。

arr:被查找的数组。

例:

1.查找元素,返回找到的值,找不到返回undefined。

const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
var ret1 = arr1.find((value, index, arr) => {
 return value > 4
})
var ret2 = arr1.find((value, index, arr) => {
 return value > 14
})
console.log('%s', ret1)
console.log('%s', ret2)

结果:

undefined

2.查找元素,返回找到的index,找不到返回-1。

var ret3 = arr1.findIndex((value, index, arr) => {
 return value > 4
})

var ret4 = arr1.findIndex((value, index, arr) => {
 return value > 14
})
console.log('%s', ret3)
console.log('%s', ret4)

结果:

4
-1

3.查找NaN。

const arr2 = [1, 2, NaN, 4, 5, 6, 7, 8, 9, 10, 11]
var ret5 = arr2.find((value, index, arr) => {
 return Object.is(NaN, value)
})
var ret6 = arr2.findIndex((value, index, arr) => {
 return Object.is(NaN, value)
})
console.log('%s', ret5)
console.log('%s', ret6)

结果:

NaN
2    

总结

以上所述是小编给大家介绍的ES6中Array.find()和findIndex()函数的用法详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
Add Formatted Text to a Word Document
Jun 15 Javascript
合并table相同单元格的jquery插件分享(很精简)
Jun 20 Javascript
jQuery 在光标定位的地方插入文字的插件
May 10 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
May 04 Javascript
jquery判断复选框选中状态以及区分attr和prop
Dec 18 Javascript
jQuery遍历节点树方法分析
Sep 08 Javascript
js实现九宫格的随机颜色跳转
Feb 19 Javascript
原生js封装添加class,删除class的实例
Nov 06 Javascript
原生js调用json方法总结
Feb 22 Javascript
基于IView中on-change属性的使用详解
Mar 15 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
Aug 31 Javascript
微信小程序点击item使之滚动到屏幕中间位置
Mar 25 Javascript
详解JS构造函数中this和return
Sep 16 #Javascript
Angular使用Md5加密的解决方法
Sep 16 #Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 #Javascript
EasyUI创建人员树的实例代码
Sep 15 #Javascript
webpack构建react多页面应用详解
Sep 15 #Javascript
详解Vue中一种简易路由传参办法
Sep 15 #Javascript
JavaScript实现换肤功能
Sep 15 #Javascript
You might like
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
理解Javascript闭包
2013/11/01 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
Vue异步组件处理路由组件加载状态的解决方案
2018/09/07 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
wxPython中文教程入门实例
2014/06/09 Python
Python制作CSDN免积分下载器
2015/03/10 Python
Python pickle模块用法实例分析
2015/05/27 Python
关于python多重赋值的小问题
2019/04/17 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
电子专业自荐信
2014/07/01 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
给老婆的检讨书
2015/01/27 职场文书
2015年体育部工作总结
2015/04/02 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
爱心捐款活动总结
2015/05/09 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis
Django migrate报错的解决方案
2021/05/20 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL