我有这个代码,按月显示数据。现在我需要总计同月的数据。例如,如果Month may有2个数据(2,4),则最终输出应为5月6日。目前它在表格中 5月2日 5月4日
$.ajax({
url: url,
type: "Get",
dataType: "json",
data: { Year: selectedYear, Filtertxt: selectedQuarter},
crossDomain: true,
success: function (data) {
if (data.length > 0) {
var tr;
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun","Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
for (var i = 0; i < data.length; i++) {
var date = new Date(data[i].CompDt);
var month = monthNames[date.getMonth()];
var monthdata = data[i].ID;
var totalamt = data[i].TotalAmt;
tr = $('<tr/>');
tr.append("<td>" + month + "</td>");
tr.append("<td>" + monthdata+ "</td>");
tr.append("<td>" + totalamt + "</td>");
$('#GraphTable').append(tr);
}
tr = $('<tr style="font-weight: bold; background-color: white" />');
tr.append("<td></td>");
tr.append("<td></td>");
tr.append("<td></td>");
$('#GraphTable').append(tr);
}
else {
tr = $('<tr/>');
tr.append("<th colspan='10' style='text-align:center'>No Data to display</th>");
$('#GraphTable').append(tr);
}
} //end of success
});
答案 0 :(得分:0)
您可以先格式化JSON数据
csc
const formatted = {};
data.forEach((item) => {
const date = new Date(item.CompDt);
const month = months[date.getMonth()];
if (!formatted[month]) {
formatted[month] = item.TotalAmt;
} else {
formatted[month] += item.TotalAmt;
}
});
然后,您可以使用格式化数据,但不确定如何处理const data = [
{
ID: 1,
CompDt: '01/01/2017',
TotalAmt: 2,
},
{
ID: 2,
CompDt: '01/01/2017',
TotalAmt: 4,
},
{
ID: 3,
CompDt: '02/01/2017',
TotalAmt: 3,
},
{
ID: 4,
CompDt: '04/01/2017',
TotalAmt: 10,
},
];
const months = [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec',
];
const formatted = {};
data.forEach((item) => {
const date = new Date(item.CompDt);
const month = months[date.getMonth()];
if (!formatted[month]) {
formatted[month] = item.TotalAmt;
} else {
formatted[month] += item.TotalAmt;
}
});
console.log(formatted);
。