배열 리듀싱하기

배열 리듀싱이란 배열의 모든 요소를 특정한 방식으로 결합하여 단 하나의 값으로 줄이는 것을 말합니다. 이는 함수형 프로그래밍에서 많이 사용되는 기법 중 하나입니다. JavaScript의 배열 메소드인 reduce()를 사용하여 배열 리듀싱을 할 수 있습니다.

reduce() 메소드

reduce() 메소드는 콜백 함수와 초깃값을 인자로 받습니다. 콜백 함수는 배열의 각 요소와 초깃값을 순차적으로 받아서 연산을 수행하고, 최종적으로 하나의 값으로 리턴합니다. 초깃값은 생략할 수도 있습니다.

const numbers = [1, 2, 3, 4, 5];

// 배열의 요소를 모두 더하는 예제
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);

console.log(sum); // 15

위의 코드에서 reduce() 메소드의 콜백 함수는 accumulatorcurrentValue를 인자로 받아서 두 값을 더하고, 그 결과를 accumulator에 할당합니다. 초기값인 0을 지정했기 때문에 리듀싱 과정에서 accumulator은 0부터 시작해서 각 요소들을 더해나갑니다.

활용 예제

배열 리듀싱은 다양한 상황에서 유용하게 사용될 수 있습니다. 예를 들어, 배열의 최댓값을 구하는 것이나, 평균값을 구하는 것 등이 가능합니다.

const numbers = [10, 5, 25, 15, 20];

// 배열의 최댓값 구하기
const max = numbers.reduce((accumulator, currentValue) => Math.max(accumulator, currentValue));

console.log(max); // 25

// 배열의 평균값 구하기
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue);
const average = sum / numbers.length;

console.log(average); // 15

위의 코드에서 Math.max() 함수를 사용하여 최댓값을 구하였습니다. 또한, 배열의 평균값을 구하기 위해서는 먼저 모든 요소를 더한 후 배열의 길이로 나누어야 합니다.

결론

배열 리듀싱은 JavaScript에서 배열의 요소들을 결합하여 필요한 결과를 얻을 때 유용한 기법입니다. reduce() 메소드를 활용하여 다양한 연산을 수행할 수 있으며, 콜백 함수와 초기값을 조절하여 원하는 결과를 얻을 수 있습니다. 배열 리듀싱은 함수형 프로그래밍에서 중요한 개념이므로, 익숙해지는 것이 좋습니다.

더 자세한 내용은 MDN 문서를 참고하시기 바랍니다.

#TechBlog #JavaScript #배열리듀싱