Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 배열에서 참(true)/거짓(false) 값의 개수 구하는 방법

JavaScript에서 배열 안에 들어 있는 true(참)false(거짓) 값의 개수를 세는 방법을 소개합니다. 가장 기본적인 접근 방식은 배열을 순회하면서 조건에 맞는 값을 카운트하는 것입니다.

기본 예제: 반복문으로 카운트하기

다음은 객체 배열에서 isMarried 속성이 true인 값과 false인 값의 개수를 각각 구하는 코드입니다.

var obj = [
    {
        isMarried: true
    },
    {
        isMarried: false
    },
    {
        isMarried: true
    },
    {
        isMarried: true
    },
    {
        isMarried: false
    }
]
function numberOfTrueValues(obj) {
    var counter = 0;
    for (var index = 0; index < obj.length; index++) {
        if (obj[index].isMarried === true) {
            counter++;
        }
    }
    return counter;
}
function numberOfFalseValues(obj) {
    var counter = 0;
    for (var index = 0; index < obj.length; index++) {
        if (obj[index].isMarried === false) {
            counter++;
        }
    }
    return counter;
}
console.log("Number Of true values=" + numberOfTrueValues(obj));
console.log("Number Of false values=" + numberOfFalseValues(obj));

위 프로그램을 실행하려면 아래 명령어를 사용합니다.

node fileName.js

여기서는 파일 이름이 demo318.js라고 가정하겠습니다.

실행 결과

프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

PS C:\Users\Amit\javascript-code> node demo318.js
Number Of true values=3
Number Of false values=2

더 간결한 방법: filter() 메서드 활용

ES5 이상 환경이라면 filter() 메서드를 사용해 훨씬 간결하게 작성할 수도 있습니다.

const trueCount = obj.filter(item => item.isMarried === true).length;
const falseCount = obj.filter(item => item.isMarried === false).length;

console.log("true 값의 개수=" + trueCount);   // 3
console.log("false 값의 개수=" + falseCount); // 2

filter()는 조건을 만족하는 요소만 모아 새로운 배열을 반환하므로, 그 배열의 length 속성을 이용하면 원하는 개수를 바로 얻을 수 있습니다. 코드가 짧아지고 가독성도 크게 향상되므로 실무에서는 이 방식이 더 널리 사용됩니다.