数组减少 javascript 打字稿
array reduce javascript typescript
只为我自己的文化。
我已经了解 reduce 原则的工作原理
var sumAll = function(...nums: number[]):void{
var sum = nums.reduce((a, b) => a + b , 0);
document.write("sum: " + sum + "<br/>");
}
sumAll(1,2,3,4,5);
它给出 15,因为我们从 0 开始。
and 1+2= 3 first call -> 1+2 替换为 3
3+3=6 第二次调用 3 -> 3
+3 替换为 6
6+4 = 10 第三次调用 -> 6+4 被 10 替换
10+5 = 15 第四次调用 -> 10 + 5 替换为最终结果 15
没关系。
但是当我这样做时会发生什么
var sumAll = function(...nums: number[]):void{
var sum = nums.reduce((a, b, c) => a + b +c , 0);
document.write("sum: " + sum + "<br/>");
}
sumAll(1,2,3,4,5);
结果是 25 但我不明白为什么...
我猜
第一次调用:1+2+3 = 6(1+2+3被6代替)
第二次调用6+4+5 = 15(6+4+5换成15就是最后的结果)
但为什么结果是25?
提前致谢;)
当您执行 var sum = nums.reduce((a, b, c) => a + b +c , 0);
时,c
*不是数字数组的成员。它实际上是一个 index。因此它不会减少到数组元素的总和。
更多
只为我自己的文化。 我已经了解 reduce 原则的工作原理
var sumAll = function(...nums: number[]):void{
var sum = nums.reduce((a, b) => a + b , 0);
document.write("sum: " + sum + "<br/>");
}
sumAll(1,2,3,4,5);
它给出 15,因为我们从 0 开始。
and 1+2= 3 first call -> 1+2 替换为 3
3+3=6 第二次调用 3 -> 3 +3 替换为 6
6+4 = 10 第三次调用 -> 6+4 被 10 替换
10+5 = 15 第四次调用 -> 10 + 5 替换为最终结果 15
没关系。
但是当我这样做时会发生什么
var sumAll = function(...nums: number[]):void{
var sum = nums.reduce((a, b, c) => a + b +c , 0);
document.write("sum: " + sum + "<br/>");
}
sumAll(1,2,3,4,5);
结果是 25 但我不明白为什么... 我猜
第一次调用:1+2+3 = 6(1+2+3被6代替)
第二次调用6+4+5 = 15(6+4+5换成15就是最后的结果)
但为什么结果是25?
提前致谢;)
当您执行 var sum = nums.reduce((a, b, c) => a + b +c , 0);
时,c
*不是数字数组的成员。它实际上是一个 index。因此它不会减少到数组元素的总和。