ES6数组方法find()、findIndex()的总结「建议收藏」

ES6数组方法find()、findIndex()的总结「建议收藏」本文主要讲解ES6数组方法find()与findIndex(),关于JS的更多数组方法,可参考以下:①JavaScript内置对象之-Array②ES5新增数组方法(例:map()、indexOf()、filter()等)③ES6新增字符串扩张方法includes()、startsWith()、endsWith()1.find()该方法主要应用于查找第一个符合条件的数组元素,即…

大家好,又见面了,我是你们的朋友全栈君。

本文主要讲解ES6数组方法find()findIndex(),关于JS的更多数组方法,可参考以下:

①JavaScript 内置对象之-Array

②ES5新增数组方法(例:map()、indexOf()、filter()等)

③ES6新增字符串扩张方法includes()、startsWith()、endsWith()


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);

结果:
在这里插入图片描述
② 如果把条件改为>10,没有符合元素,则返回undefined:

const myArr=[1,2,3,4,5,6,7,8,9];
var v=myArr.find(value=>value>10);
console.log(v); 

结果:
在这里插入图片描述
③ 它的回调函数有三个参数。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);

结果:
在这里插入图片描述

注意:

  • 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); 

结果:
在这里插入图片描述
例②:

const myArr = [1,2,3,4,5,6,7,8,9];
function bigNum(ele){ 
   
    return ele > 6;
}
console.log(myArr.findIndex(bigNum));

结果(也就是数组中第一个大于6的数,即“7”所在位置的索引):
在这里插入图片描述
例③:可以用来返回符合大于输入框中数字的数组索引

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() 并没有改变数组的原始值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130822.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Jstorm 环境搭建[通俗易懂]

    Jstorm 环境搭建[通俗易懂]Jstorm环境搭建有三种安装部署方式:standalone模式、yarn模式、docker模式,其中standalone模式最简单、轻量、稳定比较常用,整体规模不超过300台,yarn模式外部依赖较重,规模至少30台,docker比较消耗性能。standalon模式安装步骤搭建外部依赖搭建jstorm之前需要先搭建外部依赖1.zookeeper2.jdk

  • 自学计算机能学会吗(爬虫啥意思)

    大家好,我是小林。我之前遇到一个很奇怪的读者,他的头像是电影《V字仇杀队》里的面具。感觉上去是一个黑客爱好者,不是一个好惹的家伙,小林看了瑟瑟发抖。结果,他来了这么一句,「哥哥,在吗?」我头顶瞬间冒出一万个问号,怎么跟头像冷酷的感觉完全相反。只听过有的读者叫我小林哥,但是还真没遇到过直接称呼哥哥的,能说出这个称呼的话,感觉对方年纪不大。然后,他请教我关于kaliLinux安装失败的问题要怎么解决,我没有安装过,所以我也没办法解决他的问题,就让他自己去网上搜搜看看。然后,他还是没解决,

  • OIDC(OpenId Connect)身份认证「建议收藏」

    OIDC(OpenId Connect)身份认证「建议收藏」1什么是OIDC?看一下官方的介绍(http://openid.net/connect/):OpenIDConnect1.0isasimpleidentitylayerontopoftheOAuth2.0protocol.ItallowsClientstoverifytheidentityoftheEnd-Userbasedonth…

  • System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation=”true”/>

    System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation=”true”/>关于在同一个页面中使用Gridview控件的时候发现气updaeting事件无法被服务器所响应,看来它的错误报警然后查询了部分资料现在将整理的解决方法总结如下:点击update事件无法响应原因出在回发或回调参数无效。在配置中使用或在页面中使用启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用Clie

  • MySQL中 如何查询表名中包含某字段的表

    MySQL中 如何查询表名中包含某字段的表

  • 1. C语言—输出格式大全[通俗易懂]

    1. C语言—输出格式大全[通俗易懂]1.C语言—输出格式大全#include<stdio.h>intmain(){ //1.整形输出 inta=298;//输出十进制用%d printf(“1.十进制: a=%d\n”,a);//只能采用英文双引号格式,不能用单引号 //2.输出八进制用%o printf(“2.八进制:a=%o\n”,a); //3.使用%#o,可以输出八进制数的前导符(在八进制数前面加一个0,用来标识八进制数), printf(“3.前导

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号