js高阶函数map

高阶函数是什么?查了很多资料是这么说的:高阶函数就是传入的参数列表中包含函数的函数。我理解东西追求直观,所以画了张图。
这里写图片描述
举个栗子:我现在定义一个函数fnSum求两个数的和

function fnSum(x1,x2){
       return x1+x2;
}

现在我想求两个数绝对值的和,我可以直接在函数fnSum里面处理。还有一个方法就是利用高阶函数写:

function fnSum(x1,x2,fn){
     return fn(x1)+fn(x2);
}

调用的时候:fnSum(3,-9,Math.abs) //结果为12
这就是高阶函数的用法,这样写的好处显而易见。fn是一个函数,它可以提前对参数做处理,但是写fnSum这个函数的时候,我们不清楚处理的流程具体是什么,所以留待调用的人去实现。如果想先求绝对值再计算就传求绝对值函数,如果想先平方再计算就传求平方函数。

map也是高阶函数的一员,它的作用是遍历数组,并且返回一个新的数组,新的数组里的每个元素都执行map传入的函数。画图说。引用廖雪峰老师的一张图。例如为数组中的每个元素求平方,使用map写

    arr2=[1,2,3].map(f)
    console.log(arr2)
    function f(x){
        return x*x; 
    }

这里写图片描述

这里返回的一个新数组arr2,原数组没有变动,所以使用map高阶函数是不会对原来的数组造成影响的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值