Javascript 在求和函数中重复两次

Javascript 在求和函数中重复两次,javascript,angularjs,Javascript,Angularjs,我有一个函数用于数据中的total,但它将结果重复两次。有人能帮我吗 function groupBy(arr, key) { var newArr = [] , types = {} , newItem, i, j, cur; for (i = 0, j = arr.length; i < j; i++) { cur = arr[i];

我有一个函数用于数据中的total,但它将结果重复两次。有人能帮我吗

function groupBy(arr, key) {
            var newArr = []
                , types = {}
                , newItem, i, j, cur;
            for (i = 0, j = arr.length; i < j; i++) {
                cur = arr[i];
                if (!(cur[key] in types)) {
                    types[cur[key]] = {
                        type: cur[key]
                        , data: []
                    };
                    newArr.push(types[cur[key]]);
                }
                types[cur[key]].data.push(cur);
            }
            return newArr;
        };
        Array.prototype.sum = function (prop) {
            var total = 0
            for (var i = 0, len = this.length; i < len; i++) {
                total += parseInt(this[i][prop])
            }
            console.log(total);
            return total;
        }
        $scope.totalCreadit = function (st) {
            return st.sum("credits");
        }

它完美地显示了creditType和总计。但是当console.log(total)时,总计会重复两次。我需要使用总学分来显示图表

在html中有bind
{{totalCreadit(i.data)}
,因此每次angular运行摘要循环时调用该函数,该循环可能经常发生(每个事件),angular会对每个事件运行多次,以确保不再有任何更改


如果您不想查看(双向绑定)此值,而是只进行一次计算,则必须在控制器中调用函数,然后将结果保存到模型变量中,并仅将结果绑定到视图。

您在html中绑定了
{{totalCreadit(i.data)}
,因此该函数被称为everytime angular运行摘要循环,该循环可能经常发生(每个事件),angular为每个事件多次运行该函数,以确保不再有任何更改


如果您不想查看(双向绑定)此值,而是只进行一次计算,则必须在控制器中调用该函数,然后将结果保存到模型变量中,并仅将结果绑定到视图。

我看不到任何用法或调用
$scope.totalCreadit()
函数。请为此提供一个JSFIDLE。另外,标签
css
wordpress
在这里可能太多了。这是一个正在工作的JSFIDLE,我看不到任何用法或调用
$scope.totalCreadit()
函数。请为此提供一个JSFIDLE。另外,标签
css
wordpress
在这里可能太多了。这是一个工作的地方该死的这家伙该死的这家伙
 var users = [
            {
               "creditType": "Transfer"
              ,"credits": "50"
            }, {
                "creditType": "Transfer"
              ,"credits": "50"
            }
            , {
                 "creditType": "Bought"
              ,"credits": "50"
            }
            , {
                  "creditType": "Spent"
              ,"credits": "50"
            }
            , {
                 "creditType": "Award"
              ,"credits": "50"
            }
            , {
             "creditType": "Received"
              ,"credits": "50"
            }];
                        $scope.items = groupBy(users, "creditType");