详解ES6数组方法find()、findIndex()的总结


Posted in Javascript onMay 12, 2020

本文主要讲解ES6数组方法find()findIndex(),关于JS的更多数组方法,可参考以下:

1. find()

该方法主要应用于查找第一个符合条件的数组元素,即返回通过测试(函数内判断)的数组的第一个元素的值。

它的参数是一个回调函数,为数组中的每个元素都调用一次函数执行。在回调函数中可以写你要查找元素的条件,当条件成立为true时,返回该元素,之后的值不会再调用执行函数。如果没有符合条件的元素,返回值为undefined

例:

① 以下代码在myArr数组中查找元素值大于5的元素,找到后立即返回,并不会继续往下执行。返回的结果为查找到的元素:

const myArr=[1,2,3,4,5,6,7,8,9];
var v=myArr.find(value=>value>5);
console.log(v);

结果:

详解ES6数组方法find()、findIndex()的总结

② 如果把条件改为>10,没有符合元素,则返回undefined:

const myArr=[1,2,3,4,5,6,7,8,9];
var v=myArr.find(value=>value>10);
console.log(v);

结果:

详解ES6数组方法find()、findIndex()的总结

③ 它的回调函数有三个参数。value:当前的数组元素。index:当前索引值。arr:被查找的数组。

例:

查找索引值为5的元素,结果显示6:

const myArr=[1,2,3,4,5,6];
var v=myArr.find((value,index,arr)=>{
 return index===5;
});
console.log(v);

结果:

详解ES6数组方法find()、findIndex()的总结

注意:

  • find() 对于空数组,函数是不会执行的。
  • find() 并没有改变数组的原始值。

2. findIndex()

  • findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
  • 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置注:find()返回的是元素),之后的值不会再调用执行函数。如果没有符合条件的元素返回 -1注:find()返回的是undefined)。
  • findIndex()与find()的使用方法相同,findIndex()当中的回调函数也是接收三个参数,与find()相同。
  • findIndex()方法实现是通过循环遍历查找。应用场景广泛,可以查找大于等于小于,表达式可以随便写。实际上相当于一个for循环,只不过找到了你不需要自己退出。

语法:

array.findIndex(function(currentValue, index, arr), thisValue);

例①:

const myArr=[
 {
 id:1,
 Name:"张三"
 },
 {
 id:2,
 Name:"李四"
 },
 {
 id:3,
 Name:"王五"
 },
 {
 id:4,
 Name:"赵六"
 }
];
var i0=myArr.findIndex((value)=>value.id==1);
console.log(i0); 
var i1=myArr.findIndex((value)=>value.id==2);
console.log(i1); 
var i2=myArr.findIndex((value)=>value.id==3);
console.log(i2); 
var i3=myArr.findIndex((value)=>value.id==4);
console.log(i3); 
var i4=myArr.findIndex((value)=>value.id==5);
console.log(i4);

结果:

详解ES6数组方法find()、findIndex()的总结

例②:

const myArr = [1,2,3,4,5,6,7,8,9];
function bigNum(ele){
 return ele > 6;
}
console.log(myArr.findIndex(bigNum));

结果(也就是数组中第一个大于6的数,即“7”所在位置的索引):

详解ES6数组方法find()、findIndex()的总结

例③:可以用来返回符合大于输入框中数字的数组索引

var ages = [2,4,6,8,10];
 
function checkAdult(age) {
 return age >= document.getElementById("ageToCheck").value;
}
 
function myFunction() {
 document.getElementById("demo").innerHTML = ages.findIndex(checkAdult);
}

注意:

  • findIndex() 对于空数组,函数是不会执行的。
  • findIndex() 并没有改变数组的原始值。

到此这篇关于详解ES6数组方法find()、findIndex()的总结的文章就介绍到这了,更多相关ES6 find() findIndex()内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jquery的冒泡事件的阻止与允许(三种实现方法)
Feb 01 Javascript
JavaScript对象和字串之间的转换实例探讨
Apr 21 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
Apr 24 Javascript
javascript相等运算符与等同运算符详细介绍
Nov 09 Javascript
js验证真实姓名与身份证号是否匹配
Oct 13 Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 Javascript
js简单设置与使用cookie的方法
Jan 22 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
Apr 27 jQuery
微信小程序实现签到功能
Oct 31 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
May 05 Javascript
JS FormData对象使用方法实例详解
Feb 12 Javascript
js实现贪吃蛇游戏 canvas绘制地图
Sep 09 Javascript
JQuery表单元素取值赋值方法总结
May 12 #jQuery
JavaScript或jQuery 获取option value值方法解析
May 12 #jQuery
Node.js API详解之 console模块用法详解
May 12 #Javascript
基于JS实现视频上传显示进度条
May 12 #Javascript
vue项目中使用bpmn-自定义platter的示例代码
May 11 #Javascript
Vue实现图片轮播组件思路及实例解析
May 11 #Javascript
浅谈webpack构建工具配置和常用插件总结
May 11 #Javascript
You might like
php表单请求获得数据求和示例
2014/05/15 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
jQuery中triggerHandler()方法用法实例
2015/01/19 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
Python深入学习之对象的属性
2014/08/31 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
python实现猜拳游戏项目
2020/11/30 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
简历中自我评价范文3则
2013/12/14 职场文书
关于迟到的检讨书
2014/01/26 职场文书
房地产营销策划方案
2014/02/08 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
Python保存并浏览用户的历史记录
2022/04/29 Python