详解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 实现上下滚动效果示例代码
Aug 09 Javascript
JavaScript中的数组操作介绍
Dec 30 Javascript
JS判断是否360安全浏览器极速内核的方法
Jan 29 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
Oct 30 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
May 17 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
Jun 13 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
Jul 17 Javascript
React Native 环境搭建的教程
Aug 19 Javascript
浅谈JS对象添加getter与setter的5种方法
Jun 09 Javascript
深入浅析js原型链和vue构造函数
Oct 25 Javascript
layui的layedit富文本赋值方法
Sep 18 Javascript
vue 修改 data 数据问题并实时显示操作
Sep 07 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
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
JavaScript 常用函数
2009/12/30 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
2019/06/17 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python字符串,数值计算
2016/10/05 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
模具设计与制造专业应届生求职信
2013/10/18 职场文书
运动会解说词200字
2014/02/06 职场文书
七匹狼男装广告词
2014/03/21 职场文书
承诺书怎么写
2014/03/26 职场文书
春风行动实施方案
2014/03/28 职场文书
文化产业实施方案
2014/06/07 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
家长学校教学计划
2015/01/19 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python