Reduce()

JellyChoco·2020년 1월 21일
0
post-thumbnail

구글에 Array Methods 만 쳐봐도 엄청나게 나오는 정보기 때문에 따로 다루진 않을거지만, 그중 유독 어려웠고 쓰임세가 다양한 Reduce에 대해 알아보려고 한다.

  • 1. Reduce Method

    [].reduce(function(accumulator, currentValue, currentIndex, array){ 사용할 내용들 },initialValue)
    accumulator = 누산기라고 하는데, 나는 누적값 이라고 부른다.
    currentValue= 영어그대로 현재값이다.
    currentIndex= 영어그대로 현재인덱스이다.
    array = 현재 사용중인 [] <= 빈 배열을 말한다.
    initialValue = 내가 이해한바로는 accumulator(누적값)의 초기값을 말한다.
  let array = [0,1,2,3,4]
  array.reduce(function(accumulator, currentValue, currentIndex, array) {
  return accumulator + currentValue;
  });

MDN에 첫번째로 나와있는 예제이다.
똑똑한분들은 바로 이해했겠지만 나는 갸우뚱 했던거 같다.

내가 이해한 reduce의 기능은 array 를 자동적으로 0번째인덱스부터 - > 마지막 인덱스까지 한번씩 실행하면서 그 값과 인덱스등을 유용하게 사용하려고 만들어 놓은 Method 라고 이해 했다.

자세히 보면 initialValue가 적혀 있지 않은데, 그럴경우엔 배열의0번째 값을 사용한다.
그런고로 accumulator(누적값의) 초기값은 = 배열의 0번째 값인 0 으로 시작하며, 위의 예제를 보면 Return 값은 accumulator(누적값) + 현재값이고, initialValue(초기값)가없는경우 실행은 4번 될 예정이다.

0+1 = 1
1+2 = 3
3+3 = 6
6+4 = 10

이런식으로 누적값과 현재값이 작동하며 결국엔 배열안에 있는 모든 값의 합을 반환한다.

그렇지만 이런 단순한 배열의 총 합구하기 같은 것 말고도

  • 객체 내의 값 인스턴스 개수 세기
  • 속성으로 객체 분류하기
  • 확장 연산자와 초기값을 이용하여 객체로 이루어진 배열에 담긴 배열 연결하기
  • 배열의 중복 항목 제거
  • reduce()로 map() 작성
    등 엄청나게 다양하게 사용될수 있는 배열메소드 중 중요한 메소드이다.

나도 아직 이 활용도를 다 익히진 못하였지만
천천히 하다보면 익혀지리라 믿는다.

profile
코린이? 개린이!

0개의 댓글