이번에는 고차 함수에 대해서 확인을 해보도록 하자.
고차 함수
대략적인 고차함수의 정의에 대해 알아봤다.
이 내용을 토대로 고차 함수의 종류를 하나씩 살펴보도록 하자.
map
상수 numbers 배열을 선언하였고, 배열의 초기값으로 2, 4, 6, 8을 대입하였다.
map 고차 함수를 이용하여 numbers의 array를 불러와 3씩 곱해준 값을 가져와서 mapTest에는 배열의 변수에 3이 곱해진 배열이 새로 생성이 된다.
이렇게 mapTest를 실행한 경우에 기존 numbers의 배열에 3씩 곱해준 6, 12, 18, 24 로 새로운 배열이 생성된다는 내용이다.
filter
상수 numbers2의 배열을 만들었고, 배열에 10, 11, 20, 21, 30, 31, 40, 41로 초기화를 해줬다.
이후 필터 함수를 이용하여 배열의 요소로 접근을 해서 홀수인 경우를 제외하고 filterTest 상수에 대입이 된다.
이전글에서 진행했던 대로 클로저의 간소화 방법으로 작성을 진행했다.
filter를 print했을 경우에 짝수의 내용만 filterTest에 대입된 것을 확인할 수 있다.
이렇게 filter를 사용하면 컨테이너 내부의 값을 걸러서 새로운 컨테이너로 추출할 수 있다.
reduce
상수 numbers3 배열을 1,3,5,7,9로 초기화를 시켜줬다. 그리고 reduce 고차 함수를 이용해 값을 더해준다.
우선 reduce의 첫 번째 매개변수의 값을 0으로 설정을 하였고, 결과값 result 를 int, 배열의 요소를 받을 변수 number를 받는 클로저를 만들었고, result는 누적값을 의미한다.
클로저가 실행될 때마다 하나씩 배열의 값을 가져와서 더해준 부분을 확인할 수 있다. 필자의 경우에는 중간에 print 되는 내용을 확인하기 위하여 print 구문을 사용했음으로 단일 return 이 아니라 클로저의 간소화를 일부만 진행한 것을 확인할 수 있다.
추가적으로 number3.reduce(0)이 아니라 number3.reduce(4)로 진행할 경우에는 초기값이 4이기 때문에 4+1 부터 진행을 한다.
해당 내용도 변경해서 실행을 해보면 좋을것 같다.
[ 기초 문법 ] Closure (0) | 2022.08.24 |
---|---|
[ 기초 문법 ] try-catch (0) | 2022.08.24 |
[ 기초 문법 ] 옵셔널 체이닝 (0) | 2022.08.23 |
[ 기초 문법 ] 열거형 (0) | 2022.08.22 |
[ 기초 문법 ] Extension (0) | 2022.08.22 |
댓글 영역