一张图说明JavaScript中forEach、every、some、reduce、map、find和filter的区别

图片说明

实例

var persons=[
    {id:1,name:'wang1',ismale:true},
	{id:2,name:'wang2',ismale:true},
	{id:3,name:'wang3',ismale:false},
	{id:4,name:'wang4',ismale:true},
	{id:5,name:'wang5',ismale:false},
	{id:6,name:'wang6',ismale:true}
];
复制代码
forEach

用途:遍历每一项

persons.forEach((v)=>{
	console.log(v.name);
});
复制代码

输出:

wang1
wang2
wang3
wang4
wang5
wang6
复制代码

返回:

undefined
复制代码

every

用途:判断是否每项都符合条件

persons.every((item)=>{
	return item.ismale;
});
复制代码

返回&输出:

false
复制代码

some

用途:判断是否符合条件的项

persons.some((item)=>{
	return item.ismale==false
});
复制代码

返回&输出

true
复制代码

map

用途:map遍历数组,不修改原数组,返回新数组 注意: 如果要返回指定条件的项,需要在该条件下返回item,否则则返回undefined

persons.map((item)=>{
	if(item.ismale){
		return item;
    }
	return 'not male';
})
复制代码

返回&输入

0: {id: 1, name: "wang1", ismale: true}
1: {id: 2, name: "wang2", ismale: true}
2: "not male"
3: {id: 4, name: "wang4", ismale: true}
4: "not male"
5: {id: 6, name: "wang6", ismale: true}
复制代码

filter

用途:筛选出符合条件的项

persons.filter((item)=>{
	return item.ismale;
});
复制代码

输出:

0: {id: 1, name: "wang1", ismale: true}
1: {id: 2, name: "wang2", ismale: true}
2: {id: 4, name: "wang4", ismale: true}
3: {id: 6, name: "wang6", ismale: true}
复制代码

reduce

用法:

//accumulator:前一项
//currentValue:当前项值
//currentIndex:当前项索引
arr.reduce((accumulator,currentValue,currentIndex,array)=>{
    
}
复制代码

示例:

[10,12,13,14,15].reduce((s,v)=>{
	return s+v;
});
复制代码

结果:

64
复制代码

find

除了以前的迭代器函数外,还有一个find(),它与filter类似,但只返回一次值。

persons.find((item)=>{
	return item.ismale;
});
复制代码

结果:

{id: 1, name: "wang1", ismale: true}
复制代码

转载于:https://juejin.im/post/5cbffaa5f265da03690299bf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值