-
[Javascript] ReduceJavascript/Javascript 2020. 10. 13. 12:33728x90반응형
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반응형'Javascript > Javascript' 카테고리의 다른 글
[Javascript] 자료형 (0) 2021.04.08 [Javascript] Singleton Pattern(싱글톤 패턴) (0) 2020.10.13 [Javascript] Static Method (0) 2020.09.23 [Javascript] Class, Class Extends (0) 2020.09.23 [Javascript] Arrow Function(화살표 함수) (0) 2020.09.22