배열 리듀싱이란 배열의 모든 요소를 특정한 방식으로 결합하여 단 하나의 값으로 줄이는 것을 말합니다. 이는 함수형 프로그래밍에서 많이 사용되는 기법 중 하나입니다. 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()
메소드의 콜백 함수는 accumulator
와 currentValue
를 인자로 받아서 두 값을 더하고, 그 결과를 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 #배열리듀싱