본문 바로가기
개발일지/JavaScript ES6

[10~11] reduce를 사용해 코드 간단하게 만드는 방법

by 꾸주니=^= 2024. 11. 30.

1. reduce + 복잡한 함수 + acc 보다,  map + 간단한 함수 + reduce 만들기

아래 코드는 복잡하다.

위 코드가 복잡하고 하는 이유는
이 reduce에서 이 users가 어떻게 생겼는지 분석하기 위해서 이 보조 함수를 만들고 있다. 
그리고 시작 값을 통해서 합산하고 있다.

 

더 좋은 reduce는 시작 값(=0)이 없는 reduce가 더 간단한 연산을 한다.
이게 무슨 말이냐면,  아래 사진처럼 a와 b 부분이 모두 숫자인 경우에는 더 심플하게 사용할 수 있다.

더 좋은 reduce 방법 예제

하나의 함수에서 복잡하게 처리하는 것보다 a와 b를 같은 형태를 오게 한다면 복잡한 코드가 나오지 않게 된다.

 

아래 코드를 보면,
_.reduce((a,b) => a+b, L.map(u => u.age, users)));
형태를 사용해 대체하여 쉽고 간결하다고 볼 수 있다.

 

또한 코드를 조합되기에도 쉽다.

 

전체 코드 모습

 

결론

reduce 하나에 조금 복잡한 함수를 만드는 것보다, 
map과 함께 사용하면서 간단한 함수로 만들도록 하자.

 


2. reduce 하나 보다, map + filter + reduce로 만들기

reduce 하나로 복잡한 함수 만들기

reduce 하나에 복잡한 함수를 사용하는 것 보다, map과 filter를 사용하면 함수가 간결해진다.
위 코드는 조건이 바뀔 때 훨씬 더 복잡하게 될 수 있다.

 

map+filter+reduce로 간단한 함수 만들기

위 코드보다, 훨씬 간결해지고 읽기 좋다.

 

위 코드를 지연적으로 동작 시키기

먼저 filter를 사용해서 나이를 뽑고, 더욱 간결하게 조합할 수 있다.

 

결론

reduce 하나를 사용하는 것 보다, map+filter를 같이 사용하는 것이 더 간결하고 좋다!