Javascript 带有插入新项的计数类别项算法

Javascript 带有插入新项的计数类别项算法,javascript,angularjs,Javascript,Angularjs,下面的代码用于检索每个类别的总数,其中我有4个。我通过循环计算所有现有类别的长度,然后使用switch收集所有类别。它起作用了,我给了我a=3,b=2,c=10和d=20 但当我在插入新值时运行此函数时,它不起作用。例如,插入新对象时,函数会重新计算并给出错误的值 这是我写的 $scope.countNote = 0; $scope.countQuote = 0; $scope.countProject = 0;

下面的代码用于检索每个类别的总数,其中我有4个。我通过循环计算所有现有类别的长度,然后使用switch收集所有类别。它起作用了,我给了我a=3,b=2,c=10和d=20

但当我在插入新值时运行此函数时,它不起作用。例如,插入新对象时,函数会重新计算并给出错误的值

这是我写的

            $scope.countNote = 0;
            $scope.countQuote = 0;
            $scope.countProject = 0;
            $scope.countSkill = 0;

            $scope.countState = function () {

                for (var i = 0; i < $scope.postItem.length; i++)                             {
                    $loopObj = $scope.postItem[i].category_id;


                    switch ($loopObj) {
                        case '1':
                            $scope.countNote++;
                            break;
                        case '2':
                            $scope.countQuote++;
                            break;
                        case '3':
                            $scope.countProject++;
                            break;
                        case '4':
                            $scope.countSkill++;
                            break;
                    }
                }



            }
$scope.countNote=0;
$scope.countQuote=0;
$scope.countProject=0;
$scope.countSkill=0;
$scope.countState=函数(){
对于(变量i=0;i<$scope.positem.length;i++){
$loopObj=$scope.positem[i].category\u id;
交换机($loopObj){
案例“1”:
$scope.countNote++;
打破
案例“2”:
$scope.countQuote++;
打破
案例“3”:
$scope.countProject++;
打破
案例“4”:
$scope.countSkill++;
打破
}
}
}

在函数中移动初始值设定项,并在每次按下后调用它

$scope.countState = function () {
            $scope.countNote = 0;
            $scope.countQuote = 0;
            $scope.countProject = 0;
            $scope.countSkill = 0;
          for (var i = 0; i < $scope.postItem.length; i++)                             {
                    $loopObj = $scope.postItem[i].category_id;
                    switch ($loopObj) {
                        case '1':
                            $scope.countNote++;
                            break;
                        case '2':
                            $scope.countQuote++;
                            break;
                        case '3':
                            $scope.countProject++;
                            break;
                        case '4':
                            $scope.countSkill++;
                            break;
                    }
                }

            }
$scope.countState=函数(){
$scope.countNote=0;
$scope.countQuote=0;
$scope.countProject=0;
$scope.countSkill=0;
对于(变量i=0;i<$scope.positem.length;i++){
$loopObj=$scope.positem[i].category\u id;
交换机($loopObj){
案例“1”:
$scope.countNote++;
打破
案例“2”:
$scope.countQuote++;
打破
案例“3”:
$scope.countProject++;
打破
案例“4”:
$scope.countSkill++;
打破
}
}
}

如何添加新值?@Sarath I console.log($post.item)。。我使用push with for front endyes,因此每次按下后,需要使用调用countState初始化计数function@Sarath试过了,没用..逻辑很好,我也这么做了,但是值没有立即更新,可能是范围问题?我发现了问题。这是因为我在循环中使用的数据需要从后端加载,这就是数字没有更新的原因。所以我运行onload来获取数据和计数。但这是沉重和缓慢的,我正在寻找方法来做整个前端。