详解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 相关文章推荐
文本框input聚焦失焦样式实现代码
Oct 12 Javascript
jquery中JSON的解析方式
Mar 16 Javascript
网页收藏夹显示ICO图标(代码少)
Aug 04 Javascript
AngularJS中指令的四种基本形式实例分析
Nov 22 Javascript
JavaScript实现动态增删表格的方法
Mar 09 Javascript
webpack学习笔记之优化缓存、合并、懒加载
Aug 24 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
Sep 20 Javascript
在vue中使用express-mock搭建mock服务的方法
Nov 07 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
May 08 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
OpenLayers3实现测量功能
Sep 25 Javascript
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
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调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
yii数据库的查询方法
2015/12/28 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
TBCompressor js代码压缩
2011/01/05 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
Python 对象中的数据类型
2017/05/13 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Django如何实现上传图片功能
2019/08/16 Python
Python @property使用方法解析
2019/09/17 Python
Python双链表原理与实现方法详解
2020/02/22 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
is_file和file_exists效率比较
2021/03/14 PHP
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
墨西哥网上超市:Superama
2018/07/10 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
大型会议策划方案
2014/05/17 职场文书
元旦主持词开场白
2015/05/29 职场文书
小学生读书笔记范文
2015/06/30 职场文书
校运会新闻稿
2015/07/17 职场文书
升学宴家长致辞
2015/07/27 职场文书
学习十八大的感悟
2015/08/11 职场文书
2019暑假学生安全口号
2019/06/27 职场文书