我正在学习关于JavaScript的免费课程,遇到了使我感到困惑的一系列代码。
`const sum2 = (function(){
return function sum2 (...args){
return args.reduce((a,b) => a + b , 0)
}
})();
console.log(sum2(1,2,3,4,5)); //result 15, which comes from 1+2+3+4+5
`
我的问题与return args.reduce((a,b) => a + b, 0
行有关,我想知道a和b代表什么,它们如何使我的值求和?
答案 0 :(得分:0)
我的朋友是一个箭头功能。等效为:
args.reduce(function(a, b) {
return a + b
} , 0)
在这种情况下,a和b是一个累加器,它的当前值被传递。
答案 1 :(得分:0)
让我们专注于这一部分
1| function sum2 (...args){
2| return args.reduce((a,b) => a + b , 0)
3| }
首先,第2行的args是包含所有参数的数组。
第二秒,reduce函数基本上将一个数组中的所有值取值,并根据它们之间的某种关系返回一个值。 a表示当前值,b表示数组中的下一个值。 在第一次迭代中,a是数组中的第一个值,b是数组中的第二个数字。 那么a成为第一个数字和第二个数字之间的关系,b是数组中的第三个数字,依此类推。
这就是您获得15分的方式