繁体   English   中英

使用 reduce 对通过控制台日志传递的数组的所有值求和

[英]Use reduce to sum all values of an array passed via a console log

我正在尝试通过控制台日志获取数组的总数。 但是,它不是添加数字,而是返回前面带有 0 的数组。

这是我尝试过的

 const sum2 = (array) => { let total = 0; const totalFigure = array.reduce((total, number) => {}, 0) return total + array } console.log(sum2([1, 3, 5, 7, 9]));

Array.prototype.reduce()接受回调 function ,其中回调的第一个参数是上一次循环迭代中计算的“总”值,第二个参数是迭代的当前值。 最终代码可能如下所示:

const sum2 = arr => {
  const result = arr.reduce((total, number) => {
    return total + number;
  }, 0);

  return result;
};

更短:

const sum2 = arr => arr.reduce((total, number) => total + number, 0);

因为你没有做任何事情来减少你的数组 function

(total, number) => {}

并且您的初始值为 0,您只需通过返回将 0 添加到您的数组中

total + array

你永远不会总结你的数组。 total + array变成0 + array.toString() ,它创建了您所看到的01,3,5,7,9

如果你想总结你的数组的值,这是一种方法:

 const sum2 = (array) => array.reduce((total, number) => total+=number, 0) console.log(sum2([1, 3, 5, 7, 9]));

(total, number) => total+=number

这会按number递增初始值( total首先设置为),将它们加在一起并将它们返回到 reduce function 的下一次迭代

暂无
暂无

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

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