Javascript Reduce 메서드

@namYeJi9q·2024년 10월 13일

TIL

목록 보기
49/49

Reduce를 더 잘 활용하기 위해 정리해보자.

Reduce란

배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환한다.
map도 결과를 새로운 배열로 반환하지만 값을 도출하기 위해서는 단계가 더 필요하다. 각각의 쓰임에 맞춰 쓰면 될 것 같다.

reduced에는 4개의 인자와 초기값을 넣어줄 수 있다.

const array1 = [1, 2, 3, 4];

// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
  (accumulator, currentValue) => accumulator + currentValue,
  initialValue,
);

console.log(sumWithInitial);
// Expected output: 10
  • (accumulator, currentValue) => accumulator + currentValue : 각 요소에 실행할 함수, 4가지 인자를 받는다.

  • (accumulator, currentValue) : reduce 인자가 들어감. acc, cur은 필수 인자. index, array는 옵션 인자이다.

    reduce 4가지 인자

    accumulator
    누산기는 콜백의 반환값을 누적합니다. 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값입니다.

    currentValue
    처리할 현재 요소.

    currentIndex Optional
    처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작합니다.

    array Optional
    reduce()를 호출한 배열.

  • accumulator + currentValue : ruduce에서 호출할 함수이다.

  • initialValue : 초기값 설정으로 있어도 되고 없어도 된다. 없을때는 acc는 array의 첫번째 인자가 들어가고, 있다면 acc에 초기값이, cur에 array 첫번째 인자가 들어간다.

즉 acc은 결과값이 쌓여서 리턴되는 값이고, cur은 현재 요소, initialValue를 0으로 넣어서 연산하는게 일반적인거같다.
아니면 비교하는 것도 괜춘하고,
예전에는 어려운 개념이었는데 오늘 정리하고 나니 쉽고 편한 도구인거같다.

profile
뭐든 기본부터 하자

0개의 댓글