2015-11-12 2 views
0

, если у меня есть простой объект, как это:angularjs фильтр массив объектов с объектом в значении

$scope.results = { 
    year:2021, 
    subjects:[ 
    {title:'English',grade:'A'}, 
    {title:'Maths',grade:'A'}, 
    {title:'Science',grade:'B'}, 
    {title:'Geography',grade:'C'} 
    ] 
}; 

IT не проблема, чтобы получить значение с помощью фильтра, как здесь

$scope.gradeC = $filter('filter')($scope.results.subjects, {grade: 'C'})[0]; 

или считать его:

$scope.gradeA = $filter('filter')($scope.results.subjects, {grade: 'A'}).length; 

НО, если у меня есть что-то вроде этого:

$scope.results = { 
    year:2021, 
    subjects:[ 
    {title:'English',grade:''}, 
    {title:'Maths',grade:''}, 
    {title:'Science',grade:''}, 
    {title:'Geography',grade:'{ 
       _someDate : 'Nov 19, 2024' 
      }'} 
    ] 
}; 

Как я могу подсчитать, сколько значений в классе с пустой строкой у меня есть и сколько с некоторым объектом как значением?

ответ

2

Фильтр полезен для просмотра. Но в коде JS у вас есть все возможности стандартных функций JS:

var countWithEmptyGrade = $scope.results.subjects.filter(function(subject) { 
    return subject.grade === ''; 
}).length; 
+0

спасибо, отличное решение! – Arthur

Смежные вопросы