Javascript 通过索引引用对一组数组求和

Javascript 通过索引引用对一组数组求和,javascript,node.js,Javascript,Node.js,我有一个函数,需要从一组文档中的每个文档中获取一个数组,并将每个数组中的每个位置与索引“partner”的第[n]个位置相加 阵列看起来像这样 [300, 230, 45, 0, 0, 0] [200, 100, 0, 0, 0, 0] [2, 1, 0, 0, 0, 0] ... 我想从中返回[502331,45,0,0,0]。使用这个函数,我复制了一个reduce函数,所以我的函数现在看起来像这样 this.projects.forEach(function (project) {

我有一个函数,需要从一组文档中的每个文档中获取一个数组,并将每个数组中的每个位置与索引“partner”的第[n]个位置相加

阵列看起来像这样

[300, 230, 45, 0, 0, 0]
[200, 100, 0, 0, 0, 0]
[2, 1, 0, 0, 0, 0]
...
我想从中返回[502331,45,0,0,0]。使用这个函数,我复制了一个reduce函数,所以我的函数现在看起来像这样

this.projects.forEach(function (project) {
    let arrays = project.yearsTotal
    result = arrays.reduce(function (r, a) {
        a.forEach(function (b, i) {
            r[i] = (r[i] || 0) + b;
        });
        return r
    }, []);
 })
然而,这告诉我‘a.forEach不是一个函数’,我必须承认我不确定reduce函数到底在做什么,但我认为它可能不起作用,因为我的数组不是数组数组数组,它们是分开存在的


Javascript告诉我它们是对象,不是数组,但我不确定这是否重要。有人能告诉我怎么做吗

您链接的问题的区别似乎是您的数字数据,它存储在属性yearsTotal的对象数组中,而不是数字数组中

如果是这种情况,您可以创建另一个数组,仅存储所需的值:

const projectYearsTotal = this.projects.map(p => p.yearsTotal);
。。。然后,你可以继续使用reduce来处理它


您当前的解决方案尝试“压缩求和”每个项目的数字数组值“yearsTotal”,而不是数字数组数组。因此forEach不是函数错误。

请添加原始数据。顺便说一句,你从不使用结果。它也不会被声明。您将嵌套循环三次,但只需要两次