07-10. 배열내장 함수(reduce)

배열내장 함수

배열을 다룰 때 알고있으면 너무나 유용한 다양한 내장 함수들에 대하여 알아보겠습니다.

reduce는 잘 알아두면 정말 유용한 내장함수입니다.

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

let sum = 0;
numbers.forEach(n => {
    sum += n;
});

console.log(sum)
// 결과) 
15

위에 forEach로 반복문을 이용해서 배열에 있는 모든 원소를 더한 값을 보여주고 있다.

reduce 를 이용하면 이것을 한줄로 작성이 가능합니다.

리듀서 함수는 네 개의 인자를 가집니다.

  1. 누적된 원소 accumulator (acc)

  2. 현재 값 (cur)

  3. 현재 인덱스 (idx)

  4. 원본 배열 (src)

리듀서 함수의 반환 값은 누적된 원소에 할당되고, 누적된 원소는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 됩니다.

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, cur) => {
    return acc + cur;
}, 0); //(0은 초기 accumulator값이 됩니다.)

reduce 를 이용해서 평균을 구해보자

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

const avg = numbers.reduce((acc, cur, idx, src) => {
    if(idx === src.length - 1){
        return (acc + cur) / src.length;
    }
    return acc + cur;
}, 0); //(0은 초기 accumulator값이 됩니다.)
// 결과)
3

Last updated