JS_reduce() 사용하는 10가지 방법

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
영상요약 https://www.youtube.com/watch?v=NiLUGy1Mh4U

이번주에 lodash 라이브러리를 직접 구현해보는 과제를 하면서
reduce를 징그럽게 많이 만났다.

자바스크립트 reduce 는 그저 알고리즘 풀 때 정렬할 때만 썼는데
엄청나게 유용하게 쓸 수 있는 메소드였다.(이렇게 모르고 안(못) 쓰는 것들이 참 많겠지만)

오늘로 10가지 사용법만(!) 정리하고 당분간 리듀스랑 안녕하고 싶다.🎆
예제로 준 obj)

1.age 전체 합 구하기

result = obj.reduce((acc(합계), person) => 합계 + person.age, 0(시작값));
시작값이 없으면 배열의 첫번째 요소부터 합해지고, iterate은 그 다음부터!

2.전체 이름 다 나열하기 //map처럼 사용하기

result = obj. reduce((acc,person) =>[...acc, person.name],[]);

오우~ 똑똑한데! 시작 모먼트 여기:)
[...acc, person.name] 만으로도 acc+ person을 나타낼 수 있음 굿굿
[]빈배열이 시작값

3.dictionary 형태로 각 값 앞에 숫자 붙여주기 (검색용)

이건 별로 안 쓸 것 같음

4.Max age

5.min age (max 나이에서 부등호만 돌리면 됨)

6.이름(key값 검색) 검색하기!

acc(지금 까지 loop 돌린 값)이 없지 않으면 !==null 그 값 리턴하기
Leigh라는 이름을 찾으면 그사람 정보 리턴해라
이도저도 없으면 null return해라 

7. 전체 18세 이상인지 확인하기!(every)

기본값 트루 => 리턴이 안되면 false로 바뀜...! // 첫줄 이해 어려움
18세 이상은 리턴하기

8. 18세 이상인 사람이 한명이라도 있는 지 확인(some)

위의 함수에서 기본값을 false로 바꾸고,
하나라도 만족하면 true 리턴하는 걸로!

리턴할 얘는 18보다 큰 값
기본값은 false(여기서 하나라도 리턴되면 바뀜)

예2)

9. count occurrences


내가 원하는 value 몇 개 있는지 확인하기/filter처럼 사용하기
2번 사용과 비슷한데, (acc[order.status]||0)+1 로 각 status를 누적으로 보여줌
결과값

...😺이렇게나 유용하다고!
예3)

10.flatten

recursion사용

파일 내용을 다 [] 어레이 안에 넣어주기
file이 아이템이 될때까지 재귀로 돌려주기
결과값

지쳤으므로 빠른 마무리.

좋은 웹페이지 즐겨찾기