Javascript 按元素对数据数组进行分组和求和

Javascript 按元素对数据数组进行分组和求和,javascript,arrays,Javascript,Arrays,我需要创建一个新的数组,按月分组付款,而不考虑3个类别DEA、ISA、SIPP给出的帐户类型 我的数据是这样的 var arr = [ { 'DEA','1', 'Jan',1266 }, { 'ISA','1', 'Jan',621 }, { 'SIPP','1', 'Jan',552 }, { 'DEA','2', 'Feb',889 }, { 'ISA','2', 'Feb',921 }, {

我需要创建一个新的数组,按月分组付款,而不考虑3个类别DEA、ISA、SIPP给出的帐户类型

我的数据是这样的

var arr = [
        { 'DEA','1', 'Jan',1266 },
        { 'ISA','1', 'Jan',621 },
        { 'SIPP','1', 'Jan',552 },
        { 'DEA','2', 'Feb',889 },
        { 'ISA','2', 'Feb',921 },
        { 'SIPP','2', 'Feb',901 },
      ];
第1个月或第2个月etc是冗余数据,即我的输出中不需要

我需要按照以下形式按月将付款分组到一个新数组中:

var newarr =
[
{ 'Jan',2439 },
{ 'Feb',2711 },
];
我使用以下代码作为我的起点,按年龄类别分组并汇总总数,但我还无法成功应用到我的数据

var arr=[ {AGENDADOR:'AGE270',总数:6}, {AGENDADOR:'AGE270',总数:3}, {AGENDADOR:'AGE203',总数:5}, {AGENDADOR:'AGE028',总数:9}, ]; var总计=arr.reducefunction r,o{ r[o.AGENDADOR]?r[o.AGENDADOR]+=o.TOTAL:r[o.AGENDADOR]=o.TOTAL; 返回r; }, {};
控制台。日志总数 为了对月份进行求和,另一种方法是维护一个月数组,用于循环和提取需要求和的值

基本上,函数reduce按月对值进行分组,函数Object.values将分组后的值提取为数组

此方法将提取对象中显示的月份数

让月份=['一月','二月','三月'];//等等 设arr=[{'DEA':'1','Jan':1266},{'ISA':'1','Jan':621},{'SIPP':'1','Jan':552},{'DEA':'2','Feb':889},{'ISA':'2','Feb':921},{'SIPP':'2','Feb':901}; 让结果=Object.valuesarr.reducea,c=>{ months.forEachm=>{ 如果在c[m]|a[m]={[m]:0}[m]+=c[m]; }; 返回a; },Object.createnull; console.logresult;
.作为控制台包装器{最小高度:100%;}并且,您试图解决什么问题?顺便说一句,这是一个无效的输入。您的数据是无效的语法。我是javascript新手,我曾尝试使用reduce函数,如另一个问题中所示,成功地复制了一个类似的数组,但由于其多维性,我无法将其应用于我的数据,我会继续尝试,谢谢你和reduce的合作。你应该重写你的问题,并发布最后一条评论的代码。