.map/.filter/.reducer 순서도(JavaScript)

 안녕하세요. 알렉스입니다. 이번 순서도는 '.map, .filter, .reducer'입니다. 일단 '.map'먼저 보도록 하겠습니다.


그림1) .map 순서도



위 사진은 '.map'을 사용할시 진행되는 순서도 입니다. 그런데 순서도를 그리고 보니깐 'for 루프'와 상당히 유사하다는 것을 알게 되었습니다. 'for 루프'순서도는 링크로 들어가서 확인하시면 됩니다.



그림2) .filter 순서도(전체)

위 사진은 '.filter'순서도를 나타냈습니다. 그림1의 '.map'과 매우 유사하지만 3번(처리)에서 조건이 들어가게 됩니다. 그림2의 경우는 'a>3'(a가 3보다 클경우)인 경우에만 a 원소를 리턴합니다. 3번에 대한 더 자세한 순서도는 아래(그림3)에서 확인할수 있습니다.



그림3) .filter의 조건 순서도

그림3에서 3번(처리)부분을 보면 조건을 확인하고 참이면 a원소를 리턴, 거짓이면 아무것도 리턴하지 않습니다. 


그림4) .reducer 순서도(초기값 존재)


그림5) .reducer 순서도(초기값 없음)




그림4는 '.reducer'를 사용할때 초기값 0을 입력을했을때 동작되는 순서도 입니다. 중요한 사실은 이전의 '.map, .filter'처럼 배열을 반환하는 것이 아니라 누적 계산을 하여 최종적으로 a를 리턴합니다. 

.reducer의 function(a,b,c);

a(필요) : 누적 계산값을 입력한다. (초기값이 있을시 대입하고 없으면 배열의 0번째 인덱스를 넣는다.)
b(필요) : 인덱스 0 ~ 마지막까지 순차적으로 출력한다. (a에 초기값이 있으면 b는 인덱스 0부터 시작하고 초기값이 없으면 인덱스 1부터 시작한다)
c(선택) : b에 해당하는 인덱스를 출력한다.



For,While Loop 순서도 링크

If Statement 순서도 링크






댓글

이 블로그의 인기 게시물

appendChild를 이용하여
  • 늘리기_JavaScript_2번

    DAQ로 전압 측정하기-2

    Nest JS URL에 있는 쿼리(Query) 읽기