我有類似this的json。在JSON有對象名稱tipe
,我想總結act_qty1
,act_val1
,acvqty
,acvval
,budqty
,budval
,cm_val1
,cm_val2
,cm_val3
在同一TIPE(例如,總結他們在那裏他們tipe
是 「ESL」)。如何在javascript中求和?它可以用循環完成嗎?如何從幾個條件(例如,來自對象「TYPE」的值是「ABC」)的特定json對象中求和值?
這裏是我到目前爲止做出:
function detail(kodenegara, koderesult)
{
$.mobile.showPageLoadingMsg();
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://www.greenfields.co.id:502/Service1.svc/"+kodenegara,
dataType: "json",
success:function(data){
var result = koderesult;
var details = "";
for (i = 0; i < data[result].length; i++){
$("#"+data[result][i].tipe).empty();
}
for (i = 0, types={} ; i < data[result].length; i++){
$("#"+data[result][i].tipe).append("<tr>"+
"<td>"+data[result][i].mc+"</td>"+
"<td>"+data[result][i].value3+"</td>"+
"<td>"+data[result][i].value2+"</td>"+
"<td>"+data[result][i].value1+"</td>"+
"<td>"+data[result][i].avgqty+"</td>"+
"<td>"+data[result][i].budqty+"</td>"+
"<td>"+data[result][i].budval+"</td>"+
"<td>"+data[result][i].acvqty+"</td>"+
"<td>"+data[result][i].acvval+"</td>"+
"</tr>").trigger('create');
//----------------------------------//
// HERE IS what I've made TO SUM THE VALUES //
//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv//
for(i = 0; i < data[result].length; i++) {
if(data[result][i].tipe == 'ESL')
{
//how to summing data[result][i].cm_val3 where data[result][i].tipe == 'ESL'
var b = i + 1;
var test = parseInt(data[result][i].cm_val3) + parseInt(data[result][b].cm_val3)
}
}
}
//show the page
$.mobile.changePage("#detail_"+kodenegara, "slide", false, true);
},
error: function() {
alert("ERROR");
}
});
}
我不知道怎麼寫正確的循環求和的價值,同時tipe
是「ESL」(或「ESL1L」或「WHP 「 要不然)。如果我使用這個:
var b = i + 1;
var test = parseInt(data[result][i].cm_val3) + parseInt(data[result][b].cm_val3)
只有最後一個數組的總和。如何編寫正確的循環以與該條件相加?
它完美:d這恰恰正是我需要的。非常感謝你的隊友:) – blankon91 2012-07-13 09:27:13
打開螢火蟲,看看打印出來的是什麼 – 2012-07-13 09:29:32
再次感謝您的答案,但我再次遇到問題,我想從這些總結中分離出一些數值[mc](例如If 'mc'的數量是5,那麼我想要'parseFloat(SumByTipe ['ESL'] ['cm1_per1_total])/ 5')怎麼做?謝謝:) – blankon91 2012-07-18 01:15:45