문제
양수와 음수가 섞여 있는 숫자 배열을 인자로 받아, 배열에 포함된 모든 양수의 합을 계산한 뒤 반환하는 JavaScript 함수를 작성해야 합니다.
예제
다음은 전체 코드입니다 −
const arr = [5, -5, -3, -5, -7, -8, 1, 9];
const sumPositives = (arr = []) => {
const isPositive = num => typeof num === 'number' && num > 0;
const res = arr.reduce((acc, val) => {
if(isPositive(val)){
acc += val;
};
return acc;
}, 0);
return res;
};
console.log(sumPositives(arr));
출력 결과
콘솔에 출력되는 결과는 다음과 같습니다 −
15
코드 설명
먼저 isPositive 헬퍼 함수를 정의하여 값이 숫자 타입인지, 그리고 0보다 큰지를 검사합니다. 이어서 reduce() 메서드를 사용해 배열을 순회하면서 조건을 만족하는 값만 누적합에 더합니다. 초기값을 0으로 지정했기 때문에 배열에 양수가 하나도 없는 경우에도 안전하게 0을 반환할 수 있습니다.