Jquery 合并每月的总金额
我得到的是表格形式的数据。现在我需要合并当月的数据。如下所示显示表格。请帮我做这个。提前谢谢 例如:当前该表如下所示Jquery 合并每月的总金额,jquery,html,angularjs,json,Jquery,Html,Angularjs,Json,我得到的是表格形式的数据。现在我需要合并当月的数据。如下所示显示表格。请帮我做这个。提前谢谢 例如:当前该表如下所示 Month | Total Amount Jan | 100 Jan | 100 Mar | 200 Apr | 300 Apr | 200 我希望输出像这样 Month | Total Amount Jan | 200 Mar | 200 Apr | 500 代码如下: success: function (
Month | Total Amount
Jan | 100
Jan | 100
Mar | 200
Apr | 300
Apr | 200
我希望输出像这样
Month | Total Amount
Jan | 200
Mar | 200
Apr | 500
代码如下:
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 total = 0;
var totalamt = data[i].TotalAmt;
tr = $('<tr/>');
tr.append("<td>" + month + "</td>");
tr.append("<td>" + totalamt + "</td>");
$('#GraphTable').append(tr);
}
var total = 0;
for (var i = 0; i < data.length; i++) {
total = total + data[i].TotalAmt;
}
$('#GraphTable').append('<tr style="font-weight: bold; background-color: white"><td colspan="2" align="right">Total: </td><td>' + total + '</td></tr>');
tr = $('<tr style="font-weight: bold; background-color: white" />');
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
});
成功更新以下代码
success: function (data) {
if (data.length > 0) {
var tr;
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun","Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var monthsAmt = [0,0,0,0,0,0,0,0,0,0,0,0];
for (var i = 0; i < data.length; i++) {
var date = new Date(data[i].CompDt);
var monthIdx = monthsAmt[date.getMonth()];
monthsAmt[monthIdx] += data[i].TotalAmt;
}
for(var i =0;i<12;i++){
if(monthsAmt[i])
tr = $('<tr/>');
tr.append("<td>" +monthNames[i] + "</td>");
tr.append("<td>" + monthsAmt[i] + "</td>");
$('#GraphTable').append(tr);
}
}
var total = 0;
for (var i = 0; i < data.length; i++) {
total = total + data[i].TotalAmt;
}
$('#GraphTable').append('<tr style="font-weight: bold; background-color: white"><td colspan="2" align="right">Total: </td><td>' + total + '</td></tr>');
tr = $('<tr style="font-weight: bold; background-color: white" />');
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
});
这可能会起作用:
var result=[];
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 totalAmt=0;
if(data[i].CompDt==data[i+1].CompDt)
{
totalAmt= data[i].totalamt+data[i+1].totalamt;
result.push({'Month':data[i].CompDt, 'TotalAmount':totalAmt})
}
} //end of success
});
我通过以下方式找到了解决方案:
var tr;
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var monthsAmt = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (var i = 0; i < data.length; i++) {
var date = new Date(data[i].CompDt);
var monthIdx = monthNames[date.getMonth()];
switch(monthIdx)
{
case "Jan": monthsAmt[0] += data[i].TotalAmt;
break;
case "Feb": monthsAmt[1] += data[i].TotalAmt;
break;
case "Mar": monthsAmt[2] += data[i].TotalAmt;
break;
case "Apr": monthsAmt[3] += data[i].TotalAmt;
break;
case "May": monthsAmt[4] += data[i].TotalAmt;
break;
case "Jun": monthsAmt[5] += data[i].TotalAmt;
break;
case "Jul": monthsAmt[6] += data[i].TotalAmt;
break;
case "Aug": monthsAmt[7] += data[i].TotalAmt;
break;
case "Sep": monthsAmt[8] += data[i].TotalAmt;
break;
case "Oct": monthsAmt[9] += data[i].TotalAmt;
break;
case "Nov": monthsAmt[10] += data[i].TotalAmt;
break;
case "Dec": monthsAmt[11] += data[i].TotalAmt;
break;
}
}
for(var i =0;i<12;i++){
if(monthsAmt[i])
{
tr = $('<tr/>');
tr.append("<td>" +monthNames[i] + "</td>");
tr.append("<td>" + monthsAmt[i] + "</td>");
$('#GraphTable').append(tr);
}
}
您的数据是什么?如果可能的话,我强烈建议您在从AJAX请求调用的服务器端代码中解决这个问题。@初学者。。。我同意Rory的观点,这是最好的解决方案,但可能存在无法编辑服务端代码的情况,在这种情况下,我们需要示例ajax响应来帮助您。我再说一遍,如果可能的话,我会修改服务器端的代码,然后我会使用Rory的声明。大家好,我不能编辑服务器端的数据。我们可以试试ajax本身吗?这里的数据是完成日期&每个完成日期到完成日期的总金额,我得到的是月份。@初学者,我添加了if条件。请根据结果arrayifdata[i]更改下半部分。CompDt==数据[i+1]。CompDt不是每次月份都会出现在每个订单的旁边。所以这不会发生work@yogendarji,根据问题,没有人建议一月可以在三月之后来。一切都会井然有序的。我们考虑所有月份的订单。不可能是一月,三月,一月那么最后两张唱片十二月,十二月怎么样?它会出错嗨,我试过你的代码了。它将所有金额相加并显示为1月,而不是1月working@beginner你能和我分享一下你的小提琴吗?嗨,我已经对代码做了一些修改,现在可以使用了。检查我将发布的答案。我将投票赞成你的答案。谢谢: