详解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 相关文章推荐
js带按钮的提示框可供选择示例代码
Sep 17 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
AngularJS  $modal弹出框实例代码
Aug 24 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
node.js中EJS 模板快速入门教程
May 08 Javascript
浅谈React之状态(State)
Sep 19 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
Nov 25 Javascript
node.js命令行教程图文详解
May 27 Javascript
javascript中this的用法实践分析
Jul 29 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
Sep 06 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
Oct 09 Javascript
js模拟实现烟花特效
Mar 10 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解析url的三个示例
2014/01/20 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
php相对当前文件include其它文件的方法
2015/03/13 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
AngularJS的一些基本样式初窥
2015/07/27 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
python写入xml文件的方法
2015/05/08 Python
不要用强制方法杀掉python线程
2017/02/26 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python创建n行m列数组示例
2019/12/02 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
优秀党员转正的自我评价
2013/10/06 职场文书
学生处主任岗位职责
2013/12/01 职场文书
教学实验楼管理制度
2014/02/01 职场文书
高中历史教学反思
2016/02/19 职场文书
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
关于python中模块和重载的问题
2021/11/02 Python
JavaScript实现队列结构过程
2021/12/06 Javascript
DIY胆机必读:各国电子管评价
2022/04/06 无线电