以Angularjs计算列平均值

以Angularjs计算列平均值,angularjs,average,Angularjs,Average,我正在努力解决angularjs的平均计算问题,情况如下 该表的数据是从服务器中提取的,并定期更新(通过ajax),我希望同时计算列的平均值,并在表的最后一行显示结果。以下是显示表格的相关代码 <tr ng-repeat="rowData in pData"> <td ng-repeat="cellData in rowData track by $index">{{cellData}}</td> &l

我正在努力解决angularjs的平均计算问题,情况如下

该表的数据是从服务器中提取的,并定期更新(通过ajax),我希望同时计算列的平均值,并在表的最后一行显示结果。以下是显示表格的相关代码

        <tr ng-repeat="rowData in pData">
            <td ng-repeat="cellData in rowData track by $index">{{cellData}}</td>
        </tr>

        <tr>
            <td>{{averDatum}}</td>
            (need to calculate 6 column's average)
        </tr>
数据格式为


谢谢大家的帮助

类似的方法可能会奏效(请检查如果这是正确的,我当然可能会犯错误,但我认为整个想法是可以理解的):

$http({method:'GET',url:'./partials/getData.php?getTblData=1'})。
成功(函数(数据、状态、标题、配置){
//将异步调用此回调
//当响应可用时
$scope.pData=data.rowData;
$scope.updatea=data.dateData;
var n=$scope.pData.length;
var m=$scope.pData[0]。长度;
var总和=0;
对于(变量i=0;i
这是如何简单地工作的:

1) 您要修改从http调用到达的数组,方法是添加额外的行,每列的平均数

2) 为了做到这一点,您迭代每一列,计算该列的总和(这是使用2个“for”循环完成的)。在内部循环结束时,我们通过将总和除以行数来计算平均值


3) 最后,您不必调整视图标记-计算出的平均值将被追加到$scope.pData。如果您需要单独的变量来存储平均值,只需创建并修改它,而不是修改$scope.pData。

那么,您尝试了什么?在你发布的内容中,我没有看到任何计算平均值的尝试。谢谢你的回复,实际上我不知道从哪里开始,我应该使用$scope.pData并使用angular.forEach循环并计算平均值吗?是的,你需要循环$scope.pData的行,从每行获取金额,提取其数值,将其添加到总量中,并将循环b末尾的总量除以行数。您可以使用forEach或简单的JavaScript for循环。我知道了,谢谢,但我有6列要计算,如何正确显示6列数据?使用6个标记或其他标记?使用包含6个总金额的数组,而不是一个总金额。在每次迭代中,将当前行的6个数量添加到数组中相应的总量中。在循环结束时,将数组的6个总量除以行数。
$http({method: 'GET', url: './partials/getData.php?getTblData=1'}).
    success(function(data, status, headers, config) {
      // this callback will be called asynchronously
      // when the response is available
        $scope.pData = data.rowData;
        $scope.upData = data.dateData;
    });
$http({method: 'GET', url: './partials/getData.php?getTblData=1'}).
     success(function(data, status, headers, config) {
         // this callback will be called asynchronously
         // when the response is available
         $scope.pData = data.rowData;
         $scope.upData = data.dateData;

         var n = $scope.pData.length;
         var m = $scope.pData[0].length;
         var sum = 0;

         for (var i = 0; i < m; i++) 
         {
             sum = 0;
             for (var j = 0; j < n; j++)
             {
                   sum += parseInt($scope.pData[j][i].replace('$', ''), 10);
             }
             $scope.pData[j + 1][i] = '$' + Math.ceil(sum / j);
         }

});