详解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框架的AJAX实例代码
Nov 03 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
Mar 26 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
Dec 14 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
Oct 11 Javascript
js实现各种复制到剪贴板的方法(分享)
Oct 27 Javascript
AngularJS创建自定义指令的方法详解
Nov 03 Javascript
利用vue写todolist单页应用
Dec 15 Javascript
hovertree插件实现二级树形菜单(简单实用)
Dec 28 Javascript
基于webpack.config.js 参数详解
Mar 20 Javascript
深入了解JavaScript 防抖和节流
Sep 12 Javascript
vue $mount 和 el的区别说明
Sep 11 Javascript
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 Vue.js
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
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
教大家制作简单的php日历
2015/11/17 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
2015/12/22 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
python利用datetime模块计算时间差
2015/08/04 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
pytorch 修改预训练model实例
2020/01/18 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
Python类class参数self原理解析
2020/11/19 Python
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
专业求职信撰写要诀
2014/02/18 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
企业宣传工作方案
2014/06/02 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android