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

JavaScript로 배열에서 양의 정수만 골라 제곱의 합 구하기

문제 소개

실무에서 다루는 배열에는 양수, 음수, 소수, 정수 등 다양한 숫자가 뒤섞여 있는 경우가 많습니다. 이번 글에서는 이런 배열을 입력받아 양의 정수만 골라 각각 제곱한 뒤, 그 합을 반환하는 함수를 JavaScript로 작성해 보겠습니다.

코드 예제

const arr = [1, -4, 6.1, 0.1, 2.6, 5, -2, 1.9, 6, 8.75, -7, 5];
const squareSum = (arr) => {
    return arr.reduce((acc, val) => {
        // 첫 번째 조건은 양수 여부를, 두 번째 조건은 정수 여부를 검사합니다.
        if(val > 0 && val % 1 === 0){
            acc += val * val;
        }
        return acc;
    }, 0);
}
console.log(squareSum(arr));

출력 결과

콘솔에 출력되는 결과는 다음과 같습니다.

87

코드 설명

  • val > 0 : 해당 값이 양수인지 확인합니다.
  • val % 1 === 0 : 나머지 연산자(%)를 활용해 값이 정수인지 판별합니다. 소수는 1로 나눈 나머지가 0이 아니므로 자동으로 걸러집니다.
  • reduce() : 초기값 0에서 시작해 조건을 통과한 숫자들의 제곱값을 하나씩 누적하여 합계를 만듭니다.

참고로 최신 JavaScript에서는 Number.isInteger(val) 메서드를 사용하면 정수 여부를 더욱 명확하고 가독성 좋게 검사할 수 있습니다.