Javascript reduce push individual sums + final sum

标签 javascript arrays

我无法完全理解 Array.reduce .

我有这个数组:

const fooArray = [1, 2, 3, 4, 5];

我正在尝试做的是将各个增量总和插入一个新数组,例如:

[1, 3, 6, 10, 15]

这是我的归约函数:

const barArray = [];
fooArray.reduce((previousValue, currentValue, currentIndex) => {
    barArray.push(previousValue)
    return previousValue + currentValue;
});

部分有效,barArray 变为

[1, 3, 6, 10]

除了你会注意到 fooArray 的长度是 5 而 barArray 是 4 之外,它缺少最后的总和,它应该是 15。我知道 previousValue + currentValue 会将所有内容相加,但我无法连接如何在添加所有增量总和后将其插入数组的末尾。

感谢任何帮助。

JSfiddle:http://jsfiddle.net/4u2fopyg/2/

最佳答案

您可以计算累计和,并在将其推送到 barArray 后在每一步返回它,同时确保传递 0 作为 initialValue.reduce():

const fooArray = [1, 2, 3, 4, 5];
const barArray = [];
const total = fooArray.reduce((previousValue, currentValue) => {
  const sum = previousValue + currentValue;
  barArray.push(sum);
  return sum;
}, 0);

console.log('barArray:', barArray.join(), 'total:', total);

或者,您可以将连音符作为累加器传递,这可能是某些人的首选样式:

const fooArray = [1, 2, 3, 4, 5];
const [barArray, total] = fooArray.reduce(([barArray, previousValue], currentValue) => {
  const sum = previousValue + currentValue;
  barArray.push(sum);
  return [barArray, sum];
}, [[], 0]);

console.log('barArray:', barArray.join(), 'total:', total);

关于Javascript reduce push individual sums + final sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50939905/

相关文章:

javascript - 如何将 .jpeg url 中的图像访问到 Base64 编码的 javascript

javascript - 在 React 中检查 Prop 类型

javascript - 了解此 javascript 幻灯片如何使用键值对

c - 如何使用c语言将.csv文件中的数据读取到多维数组?

java - Java中long数组转int数组

ruby 将数组转换为函数参数

javascript - 如何在提交时将复杂的表单对象存储到 redux 状态?

javascript - 错误 :Own javascript slider for wordpress - Hover function?

javascript - 如何将js鼠标坐标获取到php插入查询中?

javascript - 只要使用 JavaScript 的项目尚不存在于数组中,就推送到数组