Reduce 和三元运算符。reduce 方法中的三元运算符在 'else' 部分有零和 return 错误答案
Reduce and ternary operator .The ternary operator in reduce method has zero in the 'else' part and return the wrong answer
我的 reduce 函数 returns 27 而不是 77。我想知道为什么会这样。我不是在寻找解决方案。我知道解决方案,但我不知道为什么我的三元运算符的 else 部分中的 0 或 null 没有给出正确答案。
const sumFive = arr => arr.reduce((sum, value) => value > 5 ? sum + value : 0, 0)
sumFive([1, 5, 20, 30, 4, 9, 18])
每次迭代遇到 5 或更小的值时,您都将累加器重置为 0。
iteration so far --- accumulator returned by iteration
1 --- 0
1, 5 --- 0
1, 5, 20 --- 20
1, 5, 20, 30 --- 50
1, 5, 20, 30, 4 --- 0
1, 5, 20, 30, 4, 9 --- 9
1, 5, 20, 30, 4, 9, 18 --- 27
如果您希望您的函数产生所需的输出,您需要 return 当前累加器值而不是 0。
我的 reduce 函数 returns 27 而不是 77。我想知道为什么会这样。我不是在寻找解决方案。我知道解决方案,但我不知道为什么我的三元运算符的 else 部分中的 0 或 null 没有给出正确答案。
const sumFive = arr => arr.reduce((sum, value) => value > 5 ? sum + value : 0, 0)
sumFive([1, 5, 20, 30, 4, 9, 18])
每次迭代遇到 5 或更小的值时,您都将累加器重置为 0。
iteration so far --- accumulator returned by iteration
1 --- 0
1, 5 --- 0
1, 5, 20 --- 20
1, 5, 20, 30 --- 50
1, 5, 20, 30, 4 --- 0
1, 5, 20, 30, 4, 9 --- 9
1, 5, 20, 30, 4, 9, 18 --- 27
如果您希望您的函数产生所需的输出,您需要 return 当前累加器值而不是 0。