자바스크립트 배열의 모든 요소의 곱 구하기
자바스크립트에서 배열의 모든 요소의 곱을 구하는 방법을 알아보겠습니다.
우선 다음과 같은 배열이 있다고 가정해봅시다.
const numbers = [2, 3, 4, 5];
이 배열의 모든 요소를 곱해서 결과를 구하려면 어떻게 해야 할까요?
방법 1: for 반복문 사용
for 반복문을 사용하여 배열의 요소를 하나씩 곱해나갈 수 있습니다.
let product = 1;
for (let i = 0; i < numbers.length; i++) {
product *= numbers[i];
}
console.log("배열의 모든 요소의 곱:", product);
방법 2: reduce 메소드 사용
reduce 메소드는 배열의 모든 요소에 대해 콜백 함수를 실행하여 하나의 결과값을 도출합니다.
const product = numbers.reduce((accumulator, currentValue) => accumulator * currentValue, 1);
console.log("배열의 모든 요소의 곱:", product);
reduce 메소드는 콜백 함수와 초기값을 인자로 받습니다. 여기서 콜백 함수는 누산기(accumulator)와 현재값(currentValue)을 인자로 받아 누산기에 현재값을 곱한 후 반환하는 역할을 수행합니다.
위의 예시에서는 초기값을 1로 설정했고, numbers 배열의 각 요소들을 누산기에 곱해나가면서 최종 곱셈 결과를 도출합니다.
방법 3: Array.prototype.reduce
와 Array.prototype.reduceRight
의 조합
Array.prototype.reduce
와 Array.prototype.reduceRight
를 조합하여 배열의 앞쪽부터 뒤쪽까지 또는 반대로 곱해나갈 수도 있습니다.
const productLeftToRight = numbers.reduce((accumulator, currentValue) => accumulator * currentValue, 1);
const productRightToLeft = numbers.reduceRight((accumulator, currentValue) => accumulator * currentValue, 1);
console.log("배열의 앞쪽부터 곱한 결과:", productLeftToRight);
console.log("배열의 뒤쪽부터 곱한 결과:", productRightToLeft);
위의 예시에서 reduce
는 배열의 왼쪽에서 오른쪽으로 요소를 처리하며 곱한 결과를 반환하고, reduceRight
는 배열의 오른쪽에서 왼쪽으로 요소를 처리하며 곱한 결과를 반환합니다.
따라서 위의 예시에서는 numbers 배열을 앞쪽부터 곱하거나 뒤쪽부터 곱한 결과를 각각 반환합니다.
이렇게 자바스크립트에서 배열의 모든 요소의 곱을 구하는 방법을 알아보았습니다. 각 방법을 적절히 활용하여 프로그램을 작성할 수 있습니다.