Javascript 计算每月的总数

Javascript 计算每月的总数,javascript,html,jquery,json,Javascript,Html,Jquery,Json,我已经创建了一个包含每周计数和每月计数的表,并创建了一个表。我想计算总数并将其显示在“年度”列中。饱受年度总需求的折磨,需要在年度中显示2,1,3,2,1,3 const response=[{“UserName”:“user1”,“month”:“May”,“Type”:“Type3”,“Week1”:2,“Week3”:3}, {“UserName”:“user2”,“month”:“May”,“Type”:“Type3”,“Week1”:2}, {“UserName”:“user1”,“

我已经创建了一个包含每周计数和每月计数的表,并创建了一个表。我想计算总数并将其显示在“年度”列中。饱受年度总需求的折磨,需要在年度中显示2,1,3,2,1,3

const response=[{“UserName”:“user1”,“month”:“May”,“Type”:“Type3”,“Week1”:2,“Week3”:3},
{“UserName”:“user2”,“month”:“May”,“Type”:“Type3”,“Week1”:2},
{“UserName”:“user1”,“month”:“May”,“Type”:“Type1”,“Week2”:1},
{“UserName”:“user2”,“month”:“May”,“Type”:“Type1”,“Week2”:1,},
{“UserName”:“user1”,“month”:“Jun”,“Type”:“Type1”,“Week2”:1},
{“UserName”:“user2”,“month”:“Jun”,“Type”:“Type1”,“Week2”:1},
{“UserName”:“user1”,“month”:“Jun”,“Type”:“Type2”,“Week1”:1},
{“UserName”:“user2”,“month”:“Jun”,“Type”:“Type2”,“Week1”:1},
{“UserName”:“user1”,“month”:“Jul”,“Type”:“Type2”,“Week3”:1},
{“UserName”:“user1”,“month”:“Jul”,“Type”:“Type2”,“Week1”:1},
];
const weeksByMonth=[
“简”,
“二月”,
“三月”,
“四月”,
“五月”,
“六月”,
“七月”,
“八月”,
“九月”,
“十月”,
“11月”,
“十二月”
]
.map(m=>{
constbymonth=response.filter(x=>x.month.substring(0,3)==m);
如果(按月计算长度)
返回{
月份:m,
周:[1,2,3,4,5]。筛选(w=>
按月份查找(x=>“周”+w在x中)
)
};
})
.过滤器(m=>m);
const monthWeeks=weeksByMonth.reduce(
(w,m)=>w.concat(m.weeks.map(w=>“Week”+w.concat(“总计”)),
[]
);
const users=响应。reduce((u,x)=>{
如果(!(x.UserName in u))u[x.UserName]={};
const user=u[x.UserName];
如果(!(x.Type in user))用户[x.Type]={};
const{UserName,Type,month,…weeks}=x;
用户[x.Type][x.month.substring(0,3)]=周;
返回u;
}, {});
美元(“#geo#U摘要thead”)
.find(“tr”)
.append($(“”)
.append($(“”)
.附加(
weeksByMonth.map(m=>
$("")
.文本(m.月)
.attr(“colspan”,m.weeks.length+1)
.css(“文本对齐”、“居中”)
)
)
.之后(
$("")
.append($(“”).文本(Object.keys(用户)[0]))
.append($(“”).text('Yearly'))
.append(monthWeeks.map(w=>$(“”).文本(w)))
);
$(“#geo#U摘要正文”)。追加(
Object.key(用户).reduce((r,u,i)=>{
如果(i)
r、 推(
$("")
.append($(“”).text(u))
.append(新数组(monthWeeks.length).map(n=>$(“”))
);
常量类型=用户[u];
返回r.concat(
对象。键(类型)
.sort()
.map(t=>
$("")
.append($(“”).text(t))
.append($(“”).text('total+total'))//
.附加(
每周按月
.减少((w,m)=>{
const month=types[t][m.month]|{};
返回w.concat(
m、 周
.map(w=>month[“Week”+w])
康卡特先生(
对象。键(月)。减少(
(t,w)=>t+月[w],
0
) || "0"
)
);
}, [])
.map(t=>$(“”).text(t))
)
)
);
}, [])
);
表{border collapse:collapse}td{border:1px solid#000;padding:.5em}。作为控制台包装{max height:100%!重要;top:0;}

const响应=[
{“UserName”:“user1”,“month”:“May”,“Type”:“Type3”,“Week1”:2,“Week3”:3},
{“UserName”:“user2”,“month”:“May”,“Type”:“Type3”,“Week1”:2},
{“UserName”:“user1”,“month”:“May”,“Type”:“Type1”,“Week2”:1},
{“UserName”:“user2”,“month”:“May”,“Type”:“Type1”,“Week2”:1},
{“UserName”:“user1”,“month”:“Jun”,“Type”:“Type1”,“Week2”:1},
{“UserName”:“user2”,“month”:“Jun”,“Type”:“Type1”,“Week2”:1},
{“UserName”:“user1”,“month”:“Jun”,“Type”:“Type2”,“Week1”:1},
{“UserName”:“user2”,“month”:“Jun”,“Type”:“Type2”,“Week1”:1},
{“UserName”:“user1”,“month”:“Jul”,“Type”:“Type2”,“Week3”:1},
{“UserName”:“user1”,“month”:“Jul”,“Type”:“Type2”,“Week1”:1},
];            
const weeksByMonth=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月]。地图(m=>{
constbymonth=response.filter(x=>x.month.substring(0,3)==m);
如果(按月计算长度)
返回{
月份:m,
周:[1,2,3,4,5]。筛选(w=>byMonth.find(x=>“周”+w in x))
};
}).过滤器(m=>m);
const monthWeeks=weeksByMonth.reduce((w,m)=>w.concat(m.weeks.map)(w=>“Week”+w.concat(“总计”),[]);
const users=响应。reduce((u,x)=>{
如果(!(x.UserName in u))
u[x.UserName]={};
const user=u[x.UserName];
如果(!(x.输入用户))
用户[x.Type]={};
const{UserName,Type,month,…weeks}=x;
用户[x.Type][x.month.substring(0,3)]=周;
返回u;
}, {});
美元(“#geo#u summary thead”)。查找(“tr”)
.append($(“”)
.append($(“”)
.append(weeksByMonth.map(m=>$(“”).text(m.month).attr(“colspan”,m.weeks.length+1).css(“文本对齐”,“居中”))
。在($(“”)之后
.append($(“”).文本(Object.keys(用户)[0]))
.append($(“”).text(“年度”))
.append(monthWeeks.map(w=>$(“”).text(w));
$(“#geo#U摘要正文”)。追加(
Object.key(用户).reduce((r,u,i)=>{
如果(i)
r、 推送($(“”)