자바스크립트 배열 축소(Reduction)

자바스크립트에서 배열을 다루다 보면 배열의 값을 축소해서 하나의 값을 얻고 싶은 경우가 있습니다. 이때 자바스크립트 배열 축소(Reduction)를 사용할 수 있습니다. 배열 축소는 배열의 모든 요소를 반복하여 하나의 값으로 줄이는 과정입니다. 이를 통해 배열의 요소를 합산(sum), 평균(average), 최대값(maximum), 최소값(minimum) 등으로 축소할 수 있습니다.

배열 축소의 기본 문법

배열을 축소하기 위해서는 reduce() 메서드를 사용합니다. reduce() 메서드는 콜백 함수와 초깃값을 인자로 받습니다. 콜백 함수는 배열의 각 요소를 처리하면서 축소 되는 값을 계산하는 로직을 담당합니다. 초깃값은 축소 결과의 초깃값이 됩니다.

아래는 reduce() 메서드의 기본 문법입니다.

배열.reduce(callback[, initialValue])

배열 축소 예제

다음의 예제를 통해 배열 축소를 이해해보겠습니다. 아래의 배열은 학생들의 성적을 나타내는 배열입니다.

const grades = [85, 90, 78, 92, 88];

합산(sum) 예제

배열의 모든 요소를 합산하여 총 합을 구하는 예제입니다.

const sum = grades.reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
}, 0);

console.log(sum); // 출력: 433

평균(average) 예제

배열의 모든 요소를 평균하여 평균값을 구하는 예제입니다.

const average = grades.reduce((accumulator, currentValue, index, array) => {
  accumulator += currentValue;
  
  if (index === array.length - 1) {
    return accumulator / array.length;
  } else {
    return accumulator;
  }
}, 0);

console.log(average); // 출력: 86.6

최대값(maximum) 예제

배열에서 가장 큰 값을 구하는 예제입니다.

const max = grades.reduce((accumulator, currentValue) => {
  return Math.max(accumulator, currentValue);
}, Number.MIN_SAFE_INTEGER);

console.log(max); // 출력: 92

최소값(minimum) 예제

배열에서 가장 작은 값을 구하는 예제입니다.

const min = grades.reduce((accumulator, currentValue) => {
  return Math.min(accumulator, currentValue);
}, Number.MAX_SAFE_INTEGER);

console.log(min); // 출력: 78

결론

자바스크립트의 배열 축소(Reduction) 개념을 이해하고 기본적인 사용법과 예제를 살펴보았습니다. reduce() 메서드를 활용하여 배열의 값을 축소하는 다양한 연산을 수행할 수 있습니다. 이를 통해 복잡한 배열 처리 로직을 보다 간결하고 효율적으로 구현할 수 있습니다.