Jquery根据第一列计算每个列数

时间:2016-09-06 09:31:38

标签: javascript jquery

我有下表:

a   b    c   d
--------------  
5   2   25  25  
2   48  20  20  
5   1   22  22  
3   4   31  31  
3   3   33  33  
3   6   43  43  
3   8   45  45  
3   5   42  42  
3   11  37  37  
3   7   40  40  
3   10  36  36  
1   35  40  40  
3   22  38  38  
3   23  35  35  
1   31  34  34  

我需要根据A列组计算每列的总和,即按A组分组,得出输出结果:

a  b   c   d
------------    
1 20  30  15    
2 30  20  24    
3 10  30  16

任何人帮助我

2 个答案:

答案 0 :(得分:0)

您可以使用var table = $('#example-table').tableToJSON();将数据转换为json。然后在生成的json和for循环的帮助下,您可以实现您的目标。

点击tableToJSON()

here GitHub链接

答案 1 :(得分:0)

此代码应该可以帮助您按第一列的总和计算分组

$(document).ready(function(){
  var group_sum={};
  $("#mytable tbody tr").each(function(){
    element=$(this).find('td:first').text();
    others=$.map($(this).find('td').not(':first'),function(ele,i){
      return parseFloat($(ele).text());
    });
    if(group_sum[element]==undefined)
    {
    group_sum[element]=others;
    }
    else
    {
      for(i in others)
      {
         group_sum[element][i]+=others[i];
      }
    }
    
  })
  console.log(group_sum);

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<table id="mytable">
<thead>
	<tr>
		<th>A</th>
		<th>B</th>
		<th>C</th>
		<th>D</th>
	</tr>
</thead>
<tbody>
	<tr>
		<td>1</td>
		<td>11</td>
		<td>12</td>
		<td>13</td>
	</tr>
	<tr>
		<td>1</td>
		<td>10</td>
		<td>10</td>
		<td>10</td>
	</tr>
	<tr>
		<td>2</td>
		<td>10</td>
		<td>10</td>
		<td>10</td>
	</tr>
	<tr>
		<td>3</td>
		<td>10</td>
		<td>10</td>
		<td>10</td>
	</tr>
	<tr>
		<td>3</td>
		<td>10</td>
		<td>10</td>
		<td>10</td>
	</tr>

	<tr>
		<td>3</td>
		<td>10</td>
		<td>10</td>
		<td>10</td>
	</tr>
</tbody>
</table>