자바스크립트 배열의 모든 요소의 곱 구하기

자바스크립트에서 배열의 모든 요소의 곱을 구하는 방법을 알아보겠습니다.

우선 다음과 같은 배열이 있다고 가정해봅시다.

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.reduceArray.prototype.reduceRight의 조합

Array.prototype.reduceArray.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 배열을 앞쪽부터 곱하거나 뒤쪽부터 곱한 결과를 각각 반환합니다.


이렇게 자바스크립트에서 배열의 모든 요소의 곱을 구하는 방법을 알아보았습니다. 각 방법을 적절히 활용하여 프로그램을 작성할 수 있습니다.