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

JavaScript로 배열 요소 합계의 짝수·홀수 판별하기

이 글에서는 JavaScript를 사용해 배열에 담긴 모든 정수의 합을 구하고, 그 합이 짝수인지 홀수인지 판별하는 방법을 알아봅니다.

문제 정의

정수 배열 arr을 인자로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 배열의 모든 요소를 더한 합계가 홀수이면 문자열 'odd'를, 짝수이면 'even'을 반환해야 합니다.

해결 접근 방식

배열의 합계를 구할 때는 reduce() 메서드가 가장 간결하고 효율적입니다. reduce()는 배열의 각 요소를 순회하며 누적값(accumulator)에 현재값(current value)을 더해 최종 합계를 계산합니다.

합계를 구한 뒤에는 나머지 연산자 %를 활용합니다. 어떤 수를 2로 나눈 나머지가 0이면 짝수, 그렇지 않으면 홀수입니다. 이 결과를 삼항 연산자와 함께 사용하면 한 줄로 깔끔하게 판별 로직을 완성할 수 있습니다.

예제 코드

const arr = [5, 1, 8, 4, 6, 9];

const assignSum = (arr = []) => {
    // reduce()로 배열의 모든 요소 합계 계산
    const sum = arr.reduce((acc, val) => {
        return acc + val;
    }, 0);

    // 합계가 2로 나누어 떨어지면 짝수
    const isSumEven = sum % 2 === 0;

    return isSumEven ? 'even' : 'odd';
};

console.log(assignSum(arr));

코드 설명

  • reduce(): 초기값 0에서 시작해 배열의 각 요소를 순서대로 더하여 총합 33(5 + 1 + 8 + 4 + 6 + 9)을 구합니다.
  • sum % 2 === 0: 합계 33을 2로 나눈 나머지는 1이므로 false, 즉 홀수입니다.
  • 삼항 연산자: 조건이 참이면 'even', 거짓이면 'odd'를 반환합니다.

실행 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

odd

마무리

이처럼 reduce()와 나머지 연산자만 활용하면 별도의 반복문 없이도 배열 합계의 짝수·홀수 여부를 손쉽게 판별할 수 있습니다. 빈 배열이 입력되더라도 초기값 0 덕분에 안전하게 'even'이 반환되므로, 실무에서도 견고하게 동작하는 코드입니다.