es6数组方法find()、findIndex()与filter()的总结

es6数组方法find()、findIndex()与filter()的总结find()该方法主要应用于查找第一个符合条件的数组元素。它的参数是一个回调函数。在回调函数中可以写你要查找元素的条件,当条件成立为true时,返回该元素。如果没有符合条件的元素,返回值为undefined。以下代码在myArr数组中查找元素值大于4的元素,找到后立即返回。返回的结果为查找到的元素:constmyArr=[1,2,3,4,5,6];varv=myArr.find(value=>value>4);console.log(v);//5没有符合元素,返回undefi

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

find()

该方法主要应用于查找第一个符合条件的数组元素。它的参数是一个回调函数。在回调函数中可以写你要查找元素的条件,当条件成立为true时,返回该元素。如果没有符合条件的元素,返回值为undefined。

以下代码在myArr数组中查找元素值大于4的元素,找到后立即返回。返回的结果为查找到的元素:
const myArr=[1,2,3,4,5,6];
var v=myArr.find(value=>value>4);
console.log(v);// 5
没有符合元素,返回undefined:
const myArr=[1,2,3,4,5,6];
var v=myArr.find(value=>value>40);
console.log(v);// undefined
回调函数有三个参数。value:当前的数组元素。index:当前索引值。arr:被查找的数组。

查找索引值为4的元素:

const myArr=[1,2,3,4,5,6];
var v=myArr.find((value,index,arr)=>{ 
   
    return index==4
});
console.log(v);// 5

findIndex()

findIndex()与find()的使用方法相同,只是当条件为true时findIndex()返回的是索引值,而find()返回的是元素。如果没有符合条件元素时findIndex()返回的是-1,而find()返回的是undefined。findIndex()当中的回调函数也是接收三个参数,与find()相同。

const bookArr=[
    { 
   
        id:1,
        bookName:"三国演义"
    },
    { 
   
        id:2,
        bookName:"水浒传"
    },
    { 
   
        id:3,
        bookName:"红楼梦"
    },
    { 
   
        id:4,
        bookName:"西游记"
    }
];
var i=bookArr.findIndex((value)=>value.id==4);
console.log(i);// 3
var i2=bookArr.findIndex((value)=>value.id==100);
console.log(i2);// -1

filter()

filter()与find()使用方法也相同。同样都接收三个参数。不同的地方在于返回值。filter()返回的是数组,数组内是所有满足条件的元素,而find()只返回第一个满足条件的元素。如果条件不满足,filter()返回的是一个空数组,而find()返回的是undefined

var userArr = [
    { 
    id:1,userName:"laozhang"},
    { 
    id:2,userName:"laowang" },
    { 
    id:3,userName:"laoliu" },
]
console.log(userArr.filter(item=>item.id>1));
//[ { id: 2, userName: 'laowang' },{ id: 3, userName: 'laoliu' } ]

数组去重:

var myArr = [1,3,4,5,6,3,7,4];
console.log(myArr.filter((value,index,arr)=>arr.indexOf(value)===index));
//[ 1, 3, 4, 5, 6, 7 ]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139450.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在哪下载Mysql数据库的JDBC驱动jar包[通俗易懂]

    在哪下载Mysql数据库的JDBC驱动jar包[通俗易懂]目录在哪下载Mysql数据库的JDBC驱动jar包(1)进入此链接:(2)选择需要支持的语言(3)选择其运行平台:(4)注意看后缀,点击下载。​(5)小调查(7)解压在哪下载Mysql数据库的JDBC驱动jar包该jar包的作用:连接数据库!(1)进入此链接:https://dev.mysql.com/downloads/(2)选择需…

    2022年5月21日
  • autossh

    autosshautossh用来帮助ssh程序在中断后自动重连,在建立隧道的场合相当好用使用autossh可以进行内网穿透

    2022年10月22日
  • discuz 二次开发[通俗易懂]

    discuz 二次开发[通俗易懂]转载地址:http://www.cnblogs.com/LY-leo/p/5843439.htmldiscuz框架也算是比较流行的社区论坛框架,discuz的基础架构采用世界上最流行的web编程组合PHP +MySQL 实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。1、安装discuz先下载 discuz的安装包,解压之后有3个文件,如下:

    2022年5月20日
  • 远程打开另一台电脑硬盘

    远程打开另一台电脑硬盘

    2021年8月7日
  • 免费的java开发工具_Java那些最常用的免费开放工具,分享这15个!

    免费的java开发工具_Java那些最常用的免费开放工具,分享这15个!随着Java行业需求增加,Java工程师岗位薪资节节升高,很多小伙伴想要通过快速的方式掌握Java技能。对于初学Java的小伙伴来说了解一些免费的Java开发工具让我们工作、学习更顺畅,那么免费Java开发工具有哪些?针对这点我汇总了一些,可供参考。1、Java免费开发工具:JDK(Java开发工具包)如果你打算用Java开发一些小程序和应用程序,那么首先得给自己准备一个类似于JDK的工具,其中包…

    2022年7月8日
  • 2022 sblime3 激活码【最新永久激活】2022.03.01

    (2022 sblime3 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4…

    2022年4月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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