2017-09-25 80 views
0

我有一張表,如下所示。現在我需要顯示每週行後的總測試和週期運行的總週期。任何幫助?要在表格中顯示的每週數據總數

目前的表看起來像這樣:

Week Project  OS  TotalTests #cycle of run 
    1  P1  Windows  0    0 
      P2  Linux,UFO  4799   1 

    2  P3  Windows  234   5 

預期的表應該是這樣的:

Week Project  OS  TotalTests #cycle of run 
    1  P1  Windows  0    1 
      P2  Linux,UFO  4799   1 
        Total:  4799   2 

    2  P3  Windows  234   5 
        Total:  234   5 

下面是代碼:

success: function (data) { 
       if (data.length > 0) { 
        var Total = 0; 
        var TotalCycle = 0; 
        var oldValue = data[data.length - 1].WW, 
      c = 1; 
        for (var i = data.length - 1; i >= 0; i--) { 
         let $tr = $('<tr/>'); 
         if (i == 0 || oldValue != data[i - 1].WW) { 
          $tr.append("<td rowspan=\"" + c + "\">" + "WW - " + data[i].WW + "</td>"); 
          c = 1; 
          if (i > 0) oldValue = data[i - 1].WW; 
         } else { 
          c++; 
         } 
         $tr.append("<td>" + data[i].Project + "</td>"); 
         $tr.append("<td>" + data[i].OS + "</td>"); 
         $tr.append("<td>" + data[i].TotalTests + "</td>"); 
         Total = Total + data[i].TotalTests; 
         $tr.append("<td>" + data[i].CycleRun + "</td>"); 
         TotalCycle = TotalCycle+ data[i].CycleRun; 

         $('#GraphTable').prepend($tr); 
      } 
     } 
+0

您的預計表看起來像? ...你能提供演示視圖嗎? –

+0

@MinarMnr我的不好。請檢查編輯的問題 –

回答

1

在循環倒退在這案件變得更加複雜,以後找到放置每個總計行的位置。在這裏,你有我的方式前進......

https://jsfiddle.net/rigobauer/959pthuk/

一個忠告,處理和修改jQuery對象和DOM元素比JavaScript數組和字符串比較慢,所以考慮使用你的循環和減少DOM操作。例如,而不是...

for (...) { 
    let $tr = $('<tr/>'); 
    $tr.append("<td>" + data[i].Project + "</td>"); 
    $tr.append("<td>" + data[i].OS + "</td>"); 
    ..... 
    $('#GraphTable').prepend($tr); 
} 

...使用... ...

let rows = []; 
for (...) { 
    let row = '<tr>' +; 
       '<td>' + data[i].Project + '</td>' + 
       '<td>' + data[i].OS + '</td>'; 
    ..... 
       '</tr>'; 
    rows.push(row); 
} 
$('#GraphTable').prepend(rows.join('')); 

根據環的大小,也可以是多方式更快。

請記住,當你需要總結投你的字符串到數字......

Total = Total + parseInt(data[i].CycleRun); 

我希望它能幫助

+0

嗨,謝謝你的提示。我一定會使用這個:)我嘗試了你爲我的問題建議的代碼,但它不按照要求工作。我在這裏添加了一個演示提琴。請檢查。 https://jsfiddle.net/j7usutbj/2/ –

+0

給我一分鐘... –

+1

哦..我看到會發生什麼......你正在反向獲取json對象的信息(任何原因? )。這將會是一個問題,因爲當你完成一週的時候,你必須找到總排的位置......我會嘗試重新制定json對象的前進...... –