详解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 api参考 visualjquery 中国线路 速度快
Nov 30 Javascript
[原创]后缀就扩展名为js的文件是什么文件
Dec 06 Javascript
多浏览器支持的右下角浮动窗口
Apr 01 Javascript
11款新鲜的jQuery插件[附所有demo下载]
Jan 24 Javascript
js replace正则表达式应用案例讲解
Jan 17 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
Jan 28 Javascript
js 获取input点选按钮的值的方法
Apr 14 Javascript
探索angularjs+requirejs全面实现按需加载的套路
Feb 26 Javascript
JavaScript动态生成二维码图片
Apr 20 Javascript
javascript计算渐变颜色的实例
Sep 22 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
Jul 19 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 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框架排名
2013/07/04 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
PHP如何实现跨域
2016/05/30 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
vue改变循环遍历后的数据实例
2019/11/07 Javascript
python网络编程学习笔记(一)
2014/06/09 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
python os.fork() 循环输出方法
2019/08/08 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
工程概预算专业毕业生求职信
2013/10/04 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
民事答辩状格式范文
2015/05/21 职场文书
2016年十一促销广告语
2016/01/28 职场文书
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫
Python正则表达式中flags参数的实例详解
2022/04/01 Python