2015-04-09 2 views
0

Я работаю с AngularJS. У меня есть массив объектов, как это:angularjs подсчитывает повторяющиеся значения в массиве объектов

$scope.documents = 
    [ 
     { 
      "id": "221", 
      "activate": "t" 
     }, 
     { 
      "id": "1", 
      "activate": "t"   
     }, 
     { 
      "id": "2", 
      "activate": "t"   
     }, 
     { 
      "id": "221", 
      "activate": "t"   
     }, 
     { 
      "id": "5", 
      "activate": "t"   
     }, 
     { 
      "id": "221", 
      "activate": "t"   
     }, 
     { 
      "id": "221", 
      "activate": "t"   
     }, 
     { 
      "id": "7", 
      "activate": "t"   
     }, 
     { 
      "id": "8", 
      "activate": "t"   
     }, 
     { 
      "id": "9", 
      "activate": "t"   
     }, 
     { 
      "id": "221", 
      "activate": "t"   
     } 

    ] 

мне нужна angularjs функция, чтобы подсчитать число повторных значений в массиве объектов.

Что-то вроде этого:

$scope.count = function(param) { 

    angular.forEach($scope.preguntas, function(value, key) { 
     if (value.id == param){ 
     ........ 
     ........ 
     } 
    }); 

    }; 

, но я не знаю, как я могу сделать.

Я надеюсь, что результат-то вроде этого:

count(221); 
5 

Любой из вас есть какие-либо предложения, пожалуйста?

ответ

1

Просто увеличьте переменную count в инструкции if и верните ее.

$scope.count = function(param) { 
    var count = 0; 

    $scope.documents.forEach(function(document) { 
     if(document.id === param.toString() { 
     count++; 
     } 
    }); 

    return count; 
}; 

И разметка:

<div>{{count(221)}}</div> 
Смежные вопросы