详解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 相关文章推荐
图像替换新技术 状态域方法
Jan 28 Javascript
node.js实现多图片上传实例
Jun 03 Javascript
javascript实现简单查找与替换的方法
Jul 22 Javascript
常用javascript表单验证汇总
Jul 20 Javascript
JavaScript每天必学之数组和对象部分
Sep 17 Javascript
jQuery easyui刷新当前tabs的方法
Sep 23 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
Nov 02 Javascript
vue实现页面加载动画效果
Sep 19 Javascript
javascript 中模板方法单例的实现方法
Oct 17 Javascript
通过jquery的ajax请求本地的json文件方法
Aug 08 jQuery
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 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
对javascript和select部件的结合运用
2006/10/09 PHP
服务器端解压缩zip的脚本
2006/12/22 PHP
php实现快速排序法函数代码
2012/08/27 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
python访问纯真IP数据库的代码
2011/05/19 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
JAVA和C++的区别
2013/10/06 面试题
银行自荐信范文
2013/10/07 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python