详解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 使用点滴函数代码
May 20 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
Sep 18 Javascript
express的中间件basicAuth详解
Dec 04 Javascript
jQuery学习笔记之基础中的基础
Jan 19 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
Jun 14 Javascript
Asp.Net之JS生成分页条的方法
Nov 23 Javascript
利用JS实现简单的日期选择插件
Jan 23 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
深入探究AngularJs之$scope对象(作用域)
Jul 20 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
Jan 08 Javascript
Vue的编码技巧与规范使用详解
Aug 28 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
Oct 31 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进行ip地址掩码运算处理的方法
2016/07/11 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
python各种语言间时间的转化实现代码
2016/03/23 Python
Django权限机制实现代码详解
2018/02/05 Python
Django 路由控制的实现
2019/07/17 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
django序列化serializers过程解析
2019/12/14 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
python3.7调试的实例方法
2020/07/21 Python
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
国税会议欢迎词
2014/01/16 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
说明书怎么写
2014/05/06 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
法人授权委托书范本
2014/09/17 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers