繁体   English   中英

使用 JavaScript 中的 reduce() 对数组的负数求和

[英]Sum the negative numbers of an array using reduce() in JavaScript

我正在尝试构建一个对给定数组的负数求和的 function。 我想在这里使用 reduce() function。 这似乎是一个简单的练习。 使用三元运算符检查数字是否为负数,因此将其与总数相加。 然而,结果并不如我所愿:

 const reducer = (tot, num) => ((num < 0)? tot + num: tot); const sumOfNegative = numbers => numbers.reduce(reducer); console.log(sumOfNegative([3, -1, 0])) // => 2

预计在这里得到-1。 不确定我是否很好地掌握了 reduce() 的每一步。 我做错了什么,代码如何遍历数组?

如果您不向.reduce提供第二个参数,则它将第一个数组值作为累加的开始( tot ),这意味着不会检查数组的第一个元素是否为负。

解决方案:提供第二个参数:将其设为 0。这也意味着您不再需要三元运算符:

const sumOfNegative = numbers => numbers.reduce(reducer, 0);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM