말랑말랑 LAB

[JavaScript] reduce 함수 본문

JavaScript/함수형 프로그래밍

[JavaScript] reduce 함수

쭈02 2018. 12. 25. 13:42

Reduce 함수



o Reduce 함수?

  • 연속적으로 함수를 호출하여 실행 결과를 만들어주는 함수
  • _reduce(list, iter, memo)
    • @param list - 객체
    • @param iter - 실행 함수
    • @param memo - 시작값
  • (memo값부터 시작하여) 모든 데이터들을 이 함수를 통해 축약시켜서 원하는 새로운 결과(자료)를 만들 때 사용
o 코드
  • 모든 데이터를 순회하면서 iter 함수를 실행하고, 그 결과를 memo에 계속 덮어씀


  • memo 파라미터가 없는 경우 대비

    • argument 가 2개일 때 --> list의 첫번째 값을 memo로 설정

    • slice() 메서드로 (memo로 설정된) list의 첫번째 값 제외


  • 그러나, list가 array가 아닌 array-like 객체라면 --> slice 메서드가 동작하지 않음

    • call 을 사용하여 slice 메서드를 호출시켜줘야 함

    • Array의 slice 메서드를 call 로 호출해주는 _rest 함수를 따로 생성하여 _reduce 함수에서 호출



o 최종 예제코드








'JavaScript > 함수형 프로그래밍' 카테고리의 다른 글

[JavaScript] _each 의 외부 다형성 높이기  (0) 2019.01.02
[JavaScript] pipe 함수, go 함수  (0) 2018.12.26
[JavaScript] 커링  (0) 2018.12.24
[JavaScript] 일급 함수  (0) 2018.12.20
[JavaScript] 순수 함수  (0) 2018.12.19
Comments