배열의 일부 속성이 있는 항목 수 가져오기
저는 다음과 같은 물건들이 배열되어 있습니다.
$scope.students = [{'isSelected': true},
{'isSelected': true},
{'isSelected': false},
{'isSelected': true},
{'isSelected': true},
]
다음 값이 포함된 항목 수를 얻으려면 어떻게 해야 합니까?isSelected
로 설정된 속성true
?
갱신:
문제는요.$scope.students
REST API에서 가져와 $scope.students 변수를 루프하는 것만으로는 변수가 동작하지 않습니다.undefined
요구가 완료될 때까지 루프 코드는 다음과 같이 출력됩니다.$scope.students is not defined
.
나는 그것을 사용해봤어요.$watch
단, 이 경우 watch 디렉티브로 루프를 정의해야 합니다.이 루프는 $120.display가 정의되어 있을 때 한 번만 동작합니다.그 이후에는 $120.display 자체가 변경되지 않습니다.
다른 방법이 있습니다. Angular(각)JS 필터다음과 같이 쓸 수 있습니다.
var selectedCount = $filter('filter')($scope.students, { isSelected: true }).length;
javascript 필터 메서드를 사용할 수도 있습니다(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) 참조).
$scope.selectedStudentsCount = function() {
return $scope.students.filter(function(obj){return obj.isSelected}).length;
}
다음 방법을 컨트롤러에 추가할 수 있습니다.변수selectedStudentsCount
선택한 모든 학생의 수가 유지됩니다(여기서).isSelected
로 설정되어 있다.true
).
에서 선택한 사용자를 카운트하는 함수angular.forEach
다음 경우에만 실행됩니다.students
는 비어있지 않습니다.그 이외의 경우는, 비어 있습니다. students
변수selectedStudentsCount
돌아온다0
.
$scope.selectedStudentsCount = function() {
var count = 0;
angular.forEach($scope.students, function(student){
count += student.isSelected ? 1 : 0;
});
return count;
}
주의하시기 바랍니다.selectedStudentsCount
이 함수는 함수가므로, 이 함수는 로 호출해야 합니다.()
를 참조해 주세요.
<h2>Total selected students: {{selectedStudentsCount()}}</h2>
언급URL : https://stackoverflow.com/questions/15360256/get-count-of-items-with-some-property-in-an-array
'programing' 카테고리의 다른 글
React this.props가 정의되지 않았습니다. (0) | 2023.03.13 |
---|---|
Celery: 커스텀 JSON 인코더/디코더를 쓰는 방법이 있습니까? (0) | 2023.03.13 |
스테이트리스 컴포넌트의 컨텍스트 (0) | 2023.03.13 |
변수를 선언하고 동일한 Oracle SQL 스크립트에서 사용하는 방법은 무엇입니까? (0) | 2023.03.13 |
react JS에서 버튼 누름으로 링크 클릭을 호출하려면 어떻게 해야 합니까? (0) | 2023.03.13 |