javascript - 将数组元素的值与前一个元素相加

标签 javascript

我需要帮助将数组 elements 的值与之前的元素相加,并返回一个新数组。

所以如果我们有:

let durations = [4, 3.5, 6];

然后在新数组中,第一个元素 是 4,第二个元素 将是 4 + 3.5第三个将是4 + 3.5 + 6;所以期望的结果将是 [4, 7.5, 13.5]

到目前为止,reduce 似乎只是连接数字并返回一个字符串数组!

let durations = [4, 3.5, 6];
let arr = [];

let durationsNew = durations.reduce((a, b) => {
    arr.push(a + b);
    return arr;
}, []);

console.log(durationsNew); // The desired result is [4, 7.5, 13.5]

最佳答案

在您的代码中,您使用累加器a 并将值添加到它。累加器是一个数组,通过将其与加号运算符一起使用可将其转换为字符串。


相反,您可以为总和取一个变量,并通过为每个元素添加值来映射总和。<​​/p>

let durations = [4, 3.5, 6],
    sum = 0,
    array = durations.map(value => sum += value)

console.log(array); // [4, 7.5, 13.5]

关于javascript - 将数组元素的值与前一个元素相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60365678/

相关文章:

javascript - AngularJS 复选框过滤不过滤页面加载

JavaScript 对点击事件进行排队

javascript - knockout.js 让父对象可观察

javascript - 尝试使用左、右、上箭头键来实现 15 款益智游戏的移动

javascript - 如何将 OMDb API 的结果划分到表中?

javascript - 深奥的 JS 问题

javascript - 如何检查元素是否可见

javascript - 如何在 jQuery 中向变量添加最大值和最小值

javascript - 查找具有 x 类但不应具有 y 类的 Div

javascript - AngularJS ng-repeat 在填充表时创建三个空行并且 ng-repeat 不重复