使用js获取元素的总和

dem*_*emo 1 javascript arrays reduce sum

我有阵列.此数组中的每个元素都是object,它也包含数组.所以我需要得到数组中存在于数组中的每个项目的总和.

我接下来试过了:

function getSum(total, item) {
    return total + item;
}

var sum = array.reduce((total, item) => total + item.data.reduce(getSum));
Run Code Online (Sandbox Code Playgroud)

但它不是总和,而是字符串,以Object... 开头

rob*_*lep 5

您需要设置一个初始值total:

var sum = array.reduce((total, item) => total + item.data.reduce(getSum, 0), 0);
Run Code Online (Sandbox Code Playgroud)

如果不这样做,它将使用数组的第一项初始化,在您的情况下是一个对象.这就是为什么你得到那个意想不到的字符串.

您甚至可以使用total第二次缩减的初始值来缩短代码:

var sum = array.reduce((total, item) => item.data.reduce(getSum, total), 0);
Run Code Online (Sandbox Code Playgroud)