JavaScript reduce()란?

김진원·2022년 10월 16일

JS

목록 보기
2/11
post-thumbnail

정의

reduce메서드 줄인다는 의미처럼 배열내의 여러 값들을 단일의 결과값으로 반환시키는 함수.
reduce는 각 네개의 인자를 갖는다.
accumulator(연산된 값을 저장하는 레지스토리)
currentValue(현재값)
currentIndex(현재인덱스)
array(배열)
작동방식을 간단히 알아보자.

[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array) {
   
  return accumulator + currentValue;
});

// 0 + 1 + 2 + 3 + 4 //callback을 통한 연산
위 코드는 화살표 함수를 통해 아래와 같이 사용가능하다.

[0, 1, 2, 3, 4].reduce( (prev, curr) => prev + curr );

중복 배열 제거

let arr = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4];
let result = arr.sort().reduce((accumulator, current) => {
    const length = accumulator.length
    if (length === 0 || accumulator[length - 1] !== current) {
        accumulator.push(current);
    }
    return accumulator;
}, []);
console.log(result); //[1,2,3,4,5]

위와 같이 배열값이 저장 되어질때의 값과 현재 값을 통해 중복 배열들을 제거할 수 있다.

끝으로

reduce메서드는 인자값이 많아 익히기 까다로운 대신 활용도가 상당히 높아보인다. 배열 내 객체 값등의 접근이 필요할 경우 기억해두었다 활용해보도록 해야겠다.

profile
사용자의 관점에 대해 욕심이 많은 개발자

0개의 댓글