[Javascript] Array.reduce

2020. 11. 14. 14:54·Web/Javascript

 

When to use

배열에서 특정 값에 대한 최종 합계를 구할 때

 

구문

array.reduce(callback, [intitialValue])

callback

각 배열 요소를 순회하며 실행할 함수

 

<콜백함수 원형>

reduce(
callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => 
		T, initialValue: T): T;
Parameter Description
previousValue 이전까지의 순회 값
currentValue 이번 항목의 값
currentIndex 이번 순회 회차 수 (Optional)
array 순회 대상 배열 (Optional)

accumulator 

누산기, 콜백의 return value 누적. initialValue 로 시작 값이 정해질 수 있음.

 

initialValue

변수 이름 그대로, 초기 값!

* initialValue 미제공시 reduce 함수는 index 1부터 콜백함수를 실행한다.
 제공시 index 0에서 부터 실행.

 


학생 리스트의 점수의 최종 합을 구한다고 해보자.

 

먼저 학생 리스트를 작성한다.

 

학생 리스트

예제

이전에 forEach 를 사용할 경우 다음과 같은 코드를 통해 계산한다.

forEach

let total = 0;
studentList.forEach ((item)=>{
    total += item.score;
});

물론 이 코드도 충분히 결과값을 도출 할 수 있지만,

total이라는 합계를 담기위한 별도의 변수 선언이 필요해진다.

결과를 담기위한 변수가 많아질 경우 total을 초기화하거나 별도의 변수를 추가선언 해야할 것이다.

 

 

 

reduce ver

특정 원소에 대한 총합 , 추가 연산이 많아질 수록 reduce가 코드의 가독성 면에서 이점을 갖게된다.

 

 

출력 결과

총점1 : 1400 
index: 0 
index: 1 
index: 2 
총점2 : 1400

 


Reference

developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
www.youtube.com/watch?v=g2nMKzhkvxw

 

저작자표시 (새창열림)

'Web > Javascript' 카테고리의 다른 글

[Javascript] for loop 유의해서 쓰자  (0) 2020.11.20
[JavaScript] Object set 'key' using variable  (0) 2020.11.01
[JavaScript] 정규식 예제 (feat. E-mail, 주민번호)  (0) 2020.10.07
window.open()  (0) 2020.02.27
Window 브라우저 객체  (0) 2020.02.27
'Web/Javascript' 카테고리의 다른 글
  • [Javascript] for loop 유의해서 쓰자
  • [JavaScript] Object set 'key' using variable
  • [JavaScript] 정규식 예제 (feat. E-mail, 주민번호)
  • window.open()
M_Falcon
M_Falcon
  • M_Falcon
    Falcon
    M_Falcon
  • 전체
    오늘
    어제
    • 분류 전체보기 (432)
      • Web (16)
        • Nodejs (14)
        • Javascript (23)
        • FrontEnd (4)
      • DataBase (39)
        • Fundamental (1)
        • Redis (4)
        • PostgreSQL (10)
        • NoSQL (4)
        • MySQL (9)
        • MSSQL (3)
        • Error (4)
      • Algorithm (79)
        • Algorithm (문제풀이) (56)
        • Algorithm (이론) (23)
      • JVM (65)
        • Spring (13)
        • JPA (5)
        • Kotlin (13)
        • Java (24)
        • Error (7)
      • 기타 (70)
        • Kafka (3)
        • Kubernetes (3)
        • Docker (13)
        • git (19)
        • 잡동사니 (27)
      • 재테크 (11)
        • 세무 (4)
        • 투자 (3)
        • 보험 (0)
      • BlockChain (2)
        • BitCoin (0)
      • C (32)
        • C (10)
        • C++ (17)
        • Error (3)
      • Low Level (8)
        • OS (3)
        • 시스템 보안 (5)
      • 네트워크 (3)
      • LINUX (30)
        • Linux (26)
        • Error (4)
      • 저작권과 스마트폰의 이해 (0)
      • 생각 뭉치 (6)
      • 궁금증 (2)
      • Private (4)
        • 이직 경험 (0)
        • 꿈을 찾아서 (1)
      • Android (21)
        • OS (4)
  • 블로그 메뉴

    • 홈
    • WEB
    • 알고리즘
    • DataBase
    • Linux
    • Mobile
    • C
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    database
    Kotlin
    JPA
    java
    algorithm
    알고리즘
    linux
    docker
    android
    Bitcoin
    C++
    kafka
    Git
    백준
    프로그래머스
    Programmers
    Spring
    ubuntu
    PostgreSQL
    javascript
  • hELLO· Designed By정상우.v4.10.3
M_Falcon
[Javascript] Array.reduce
상단으로

티스토리툴바