programing

배열의 일부 속성이 있는 항목 수 가져오기

bestprogram 2023. 3. 13. 21:11

배열의 일부 속성이 있는 항목 수 가져오기

저는 다음과 같은 물건들이 배열되어 있습니다.

$scope.students = [{'isSelected': true},
    {'isSelected': true},
    {'isSelected': false},
    {'isSelected': true},
    {'isSelected': true},
]

다음 값이 포함된 항목 수를 얻으려면 어떻게 해야 합니까?isSelected로 설정된 속성true?

갱신:

문제는요.$scope.studentsREST 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