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()方法?
30
收起
正在回答
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 星