reduce()方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Document</title> </head> <body> <script> const add = (...args) =>{ // 在此补充代码 let sum=0; function getSum(a, b) { console.log(a+'<--------'); console.log(b); return a + b; } sum=args.reduce(getSum); console.log(sum); console.log(typeof sum); return sum; } document.write(add(1,2,3,4,5)) </script> </body> </html>
为什么getSum()方法能作为reduce方法的参数?为什么getSum()方法要写成含有两个参数,并且返回两个参数之和的形式?
getSum()方法中的参数a,还在累加求和,似乎是getSum()方法执行了多次,没有循环怎么还能执行这么多次getSum()方法?
29
收起
正在回答
1回答
同学你好,解答如下:
1、reduce方法的第一个参数本身就要求是函数形式,所以可以把getSum写在里面。即如下两种写法等价:
写法1(常见用法):
写法2:
2、reduce方法是js提供的一个“封装过的(处理过的)”方法。虽然它的基本使用,看起来只有如下一点代码:
数组.reduce(callback(acl, val))
但是它底层有很多其他代码,这些代码限制了reduce的参数形式、运算过程(有循环)、返回值;而对于使用者(我们),不需要关注它的底层实现,只需要按照它的要求传参、按照它的功能会使用就行。
总结一句话,reduce是js提供的一个方法,它的参数形式、使用方式、返回值都是固定好的,我们只需要按照它的要求去用就行,是固定用法。
更多使用方式,如果有精力,可以查看一下图文节:
https://class.imooc.com/lesson/1973#mid=46777
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星