ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Javascript] Reduce
    Javascript/Javascript 2020. 10. 13. 12:33
    728x90
    반응형

     

     

    reduce 사용하여 array 편집하고 수정할 있음

    • reduce 각각의 요소를 첫 번째부터 혹은 특정 인덱스부터 마지막까지 접근할 때 사용
    • 각각의 배열의 요소를 for문을 통해 배열의 요소를 하나 하나씩 접근 하는 것과 동일한 효과를 볼 수 있지만 가독성, 직관성 측면에서 뛰어남
    • map filter로 두 번 해야하는 연산을 reduce를 사용하여 한 번만 사용할 수 있음

    예시 소스

    'use strict'
    
    const numbers = [10, 20, 30, 40];
    
    // 0부터 시작해서 각각의 배열을 순회하며 다음 값들을 한 번씩 더해 줌
    // 명시적으로 초기값을 지정하지 않으면 0부터 시작
    const sum = numbers.reduce((tot, val) => tot + val)
    
    console.log(sum);
    
    // 숫자들의 평균을 구하는 과정
    const avg = numbers.reduce((tot, val, idx, arr) =>  {
       tot += val
       if (idx === arr.length - 1) {
           return tot / arr.length
       } else {
           return tot
       }
    })
    
    console.log(avg)

     

    조건에 따라 진행되는 reduce

    'use strict'
    
    const arr = ['pdf', 'html', 'html','gif','gif', 'gif']
    
    const res = arr.reduce((cnt, fileType, idx) => {
                         // undefined 방지(undefined인 경우 0을 반환)
        cnt[fileType] = (cnt[fileType] || 0) + 1
        return cnt
    }, {})
    
    console.log(res);

    728x90
    반응형
Designed by Tistory.