Js三种常用高阶函数

高阶函数map()

定义和用法:
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map() 方法按照原始数组元素顺序依次处理元素。

注意: map() 不会对空数组进行检测。

注意: map() 不会改变原始数组。

<script>
// 需求:让数组内的数字乘以2返回新数组
var numbers = [4, 9, 16, 25];
var newNumbers=numbers
.map(item => item*2)
console.log(newNumbers)  //打印结果[8,18,32,50]
</script>

高阶函数reduce()

定义和用法:
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

reduce() 可以作为一个高阶函数,用于函数的 compose。

注意: reduce() 对于空数组是不会执行回调函数的。

<script>
// 需求:求数组内所有数的和
var numbers = [4, 9, 16, 25];
var newNumbers=numbers
.reduce((total,item) => item+total)
console.log(newNumbers)  //打印结果:54
		</script>

高阶函数filter()

定义和用法:
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

注意: filter() 不会对空数组进行检测。

注意: filter() 不会改变原始数组。

<script>
// 需求:求数组内大于9的所有数
var numbers = [4, 9, 16, 25,33,24,13];
var newNumbers=numbers
.filter(item => item > 9)
console.log(newNumbers)  //打印结果:[16,25,33,24,13]
</script>

三个高阶函数的混合应用

使用高阶函数进行函数式编程,代码非常优雅,以后可以多用高阶函数

<script>
// 需求:求数组内所有数乘以3后每个大于20的数的和
var numbers = [4, 9, 16, 25,33,24,13];
var newNumbers=numbers
.map(item=>item*3)
.filter(item=>item>20)
.reduce((pre,item) => pre+item)
console.log(newNumbers)  //打印结果:360
		</script>
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值