博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6内置方法find 和 filter的区别在哪
阅读量:5054 次
发布时间:2019-06-12

本文共 821 字,大约阅读时间需要 2 分钟。

find 和 filter 为ES6中过滤查找的一个内置方法

假定有一个对象数组,根据指定对象的条件找出数组中符合的对象,要想查找出name:'Cady'的项

users= [    {name:'Marry'},    {name:'Cady',type:'person'},    {name:'Cady'},    {name:'Tom'},    {name:'Lucy'},]

  

1、在说ES6用法前我们先来看看ES5的写法
 
var user;for (let i = 0; i < users.length; i++) {if(users[i].name === 'Cady'){    user = users[i]    break;    }}console.log('user',user)

 

会输出,这里不会输出全部满足条件的项,是因为用了break;当找到满足条件时中止执行将不再往下执行;

 

2、ES6写法:

// es6写法user = users.find(function(user){    return user.name === 'Cady'})console.log('find方法:',user)user = users.filter(function(user){    return user.name === 'Cady'})console.log('filter方法:',user)

 

 

这个时候,你会发现,find当找到满足条件的项时就不再往下执行,而filter会继续往下执行找出所有满足条件的

总结:find 和 filter 的用法都是一样的,并且不改变原数组的方法,但find只查出第一个符合条件的结果像例子里是直接返回了一个对象而不是数组,而filter返回全部结果仍然是数组。

 

转载于:https://www.cnblogs.com/taojiejun/p/8822714.html

你可能感兴趣的文章
DNS负载均衡
查看>>
无法向会话状态服务器发出会话状态请求
查看>>
数据中心虚拟化技术
查看>>
Oracle OEM 配置报错: No value was set for the parameter DBCONTROL_HTTP_PORT 解决方法
查看>>
01入门
查看>>
python正则表达式
查看>>
嵌套循环连接(nested loops join)原理
查看>>
shell统计特征数量
查看>>
复习文件操作
查看>>
git使用 ——转
查看>>
C#Hashtable与Dictionary性能
查看>>
10个让你忘记 Flash 的 HTML5 应用演示
查看>>
8个Python面试必考的题目,小编也被坑过 ToT
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
centos 图形界面和命令行界面切换(转载)
查看>>
Maven启用代理访问
查看>>
Primary definition
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
发送请求时params和data的区别
查看>>