【问题标题】:Sum the negative numbers of an array using reduce() in JavaScript在 JavaScript 中使用 reduce() 对数组的负数求和
【发布时间】:2020-11-15 23:43:37
【问题描述】:

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

const reducer = (tot, num) => ((num < 0) ? tot + num : tot);
const sumOfNegative = numbers => numbers.reduce(reducer);

console.log(sumOfNegative([3, -1, 0]))
// => 2

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

【问题讨论】:

    标签: javascript arrays algorithm foreach iterator


    【解决方案1】:

    如果你不给.reduce提供第二个参数,那么它将把第一个数组值作为累加的开始(tot),这意味着你的数组的第一个元素不会被检查消极。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      相关资源
      最近更新 更多