고차함수란?
함수를 인자로 전달받거나 함수를 결과로 반환하는 함수
map()
배열내부를 돌면서 콜백함수를 실행시켜주는 새로운 배열을 반환하는 매서드입니다.
forEach()
forEach 또한 map과 동일하게 배열내부를 돌면서 각 인자에 2를 곱하는 콜백함수를 실행시켜줍니다.
map과 비교해서 어떤 점이 다를까요?
같은 코드를 매서드만 바꿔보겠습니다.
이와같이 콘솔로 찍어보면 undefined가 출력됩니다.
이는 forEach가 배열을 리턴하지 않기 때문입니다.
forEach를 사용해서 위 코드를 구현하려면 어떻게 해야 할까요?
이번에는 arrx2를 빈배열로 선언하고 콜백함수로 2를 곱하고 빈배열에 넣어주도록 하겠습니다.
이제 콘솔을 찍어보면 원하는 결과가 출력되는 것을 볼 수 있습니다.
filter()
배열내부를 순회하며 callback함수를 실행하고, 조건에 맞는 요소만을 갖는 배열을 반환합니다.
reduce()
배열의 모든 요소들에 대해서 각각 연산을 수행하여 하나의 결과 값을 반환하는 매서드 입니다.
간단하게 배열의 모든 합을 구하는 코드를 작성해도록 하겠습니다.
prev는 누적값이므로 reduce함수를 사용할때는 초기값을 지정해줄 필요가 있습니다.
prev에 콘솔을 찍어본다면 reduce함수가 어떻게 실행되는지 직접 눈으로 확인 할 수 있습니다.
이와같이 초기값부터 계산되는 것을 볼 수 있습니다.
reduce 계산식 이외에도 사용할 수 있습니다.
위 filter을 이용한 코드를 reduce를 사용하여 같은 결과값을 콘솔로 출력해보겠습니다.
참고
