Javascript Reduce 메서드

namYeJi9q·2024년 10월 13일
1

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개의 댓글