저는 줄곧 메서드를, 고차함수라고 착각하며 산 것 같습니다.
최근에 항해 플러스를 과제를 하다가, 이 부분 개념이 미친듯이 헷갈리기 시작해서 찾아본 토대로 정리해보겠습니다.
(아니 그동안 헛 산 기분임,, 지금이라도 정리하는게 어디야 ~ 럭..키비키니시티본스테이크 ~ )
고차함수
메서드
일단 두개의 정의는 다르다. 근데,
내가 자주 쓰는 배열 객체에 메서드로 정의되어있는 함수들이 ---> 거의 고차함수란거예요
여러 배열 메서드가 고차 함수의 특징을 가지면서 메서드로 정의되어 있습니다.
이는 이들 메서드가 콜백 함수를 인수로 받기 때문입니다.
배열의 각 요소에 대해 함수를 실행하는 방식으로 동작하며,
배열의 프로토타입에 정의되어 있기 때문에 메서드로 분류됩니다.
사용 예시:
const numbers = [1, 2, 3];
numbers.forEach(num => console.log(num)); // 1, 2, 3 출력
사용 예시:
const doubled = [1, 2, 3].map(num => num * 2); // [2, 4, 6]
사용 예시:
const evenNumbers = [1, 2, 3, 4].filter(num => num % 2 === 0); // [2, 4]
사용 예시:
const sum = [1, 2, 3, 4].reduce((acc, num) => acc + num, 0); // 10
사용 예시:
const firstEven = [1, 2, 3, 4].find(num => num % 2 === 0); // 2
사용 예시:
const hasEven = [1, 3, 5, 7, 8].some(num => num % 2 === 0); // true
사용 예시:
const allEven = [2, 4, 6].every(num => num % 2 === 0); // true
사용 예시:
const index = [1, 2, 3, 4].findIndex(num => num === 3); // 2
사용 예시:
const sorted = [3, 1, 4, 1, 5].sort((a, b) => a - b); // [1, 1, 3, 4, 5]
사용 예시:
const flatMapped = [1, 2, 3].flatMap(num => [num, num * 2]); // [1, 2, 2, 4, 3, 6]
고차 함수이면서 메서드인 함수들의 특징은
이 함수들은 모두 배열 객체에 메서드로 정의되어 있습니다.
이러한 메서드들은 배열을 효율적으로 다룰 수 있게 해주며, 함수형 프로그래밍 스타일을 구현할 때 자주 사용됩니다. ✔️