Array.reduce()堆叠数字而不是求和?

时间:2019-05-02 09:43:30

标签: javascript arrays

我正在尝试将数字数组简化为所有组合数字的总和。目前,我正在使用Array.reduce来实现这一目标,但是我发现该函数仅将数组的值堆叠在一起以创建一个大数字,而不是将它们加在一起。

// Function used to get the sum of all numbers in array

function getSum(total, num){
    return total + num; 

// Reduce Var 

var easternSum = scoreEastern.reduce(getSum);

// Dynamic array based on user input

var scoreEastern = dataSet
                    .filter(scoreEastern => scoreEastern.Course === 'eastern')
                    .map(({Score}) => Score);

// Empty array that scoreEastern var is assigned to

var dataSet = [];

因为我的数组是动态的,所以它基于用户输入到表单中的内容,因此没有设置数组。但是我们说数组是:

var scoreEastern = [10, 20, 30]

reduce var easternSum将导致数字102,030。我想要的是60。

1 个答案:

答案 0 :(得分:0)

我认为也许scoreEastern一直没有您期望的数据?您提到它是动态的。此代码段似乎适用于您在问题中发布的用例。

const scoreEastern = [10, 20, 30];

console.log(scoreEastern.reduce((prev, curr) => prev + curr));