JS的三个高阶函数

184 阅读1分钟

filter 函数

filter中的回调函数有一个要求:必须返回一个boolean
true当返回true时,函数内部会自动将这次回调的n加入到新的数组中
flase当返回false时,函数内部会过滤掉这次的n

如下图,数组里有七个数,filter的回调函数,每遍历一次,就会执行一次回调函数,所以会执行七次。

image.png

过滤出小于100的数字:

image.png

map 函数

map函数,跟filter一样同意后面跟一个回调函数,然后将每次遍历得到的值,返回给一个新的数组,下图是将上面filter得到的四个数字10,20,40,50*2然后返回给new2Nums

image.png

reduce 函数

reduce作用是对数组中所有的内容进行汇总,要求传入两个参数:

image.png

参数一比较特殊,因为其本身又是一个函数,因为我们是对new2Nums使用reduce,而new2Nums里面有四个值,所以此时会遍历四次。
preValue 上一次执行的结果
n每次执行的值currentValue
0初始值 就是为第一次的pre赋值

image.png

首先有四个值

image.png

然后将reducereturn写死,全部为100

image.png

四次的执行结果就如下图所示:

image.png

懂得了基本原理,我们就可以做下面这题,求上面四个值的总和,就是把上一次的pre与当前的n进行相加,再将结果返回给total

image.png

最终得到的结果分析:

image.png