반응형
SMALL
자바스크립트에서 배열의 고차 함수(Higher-Order Functions)는 배열을 다루는데 있어 매우 강력한 도구입니다. 고차 함수는 다른 함수를 인자로 받거나 함수를 결과로 반환하는 함수를 말합니다. 배열과 관련해서는 주로 배열의 각 요소를 순회하며, 특정 작업을 수행하는 데 사용됩니다. 여기에는 map, filter, reduce, forEach, find, every, some 등이 포함됩니다.
1. map()
- 배열의 각 요소에 대해 주어진 함수를 호출한 결과를 모아 새 배열을 반환합니다.
- 예: 각 요소를 제곱하는 경우
const numbers = [1, 2, 3, 4];
const squared = numbers.map(x => x * x);
// squared: [1, 4, 9, 16]
2. filter()
- 주어진 함수의 테스트를 통과하는 모든 요소를 모아서 새 배열을 반환합니다.
- 예: 짝수만 필터링하는 경우
const numbers = [1, 2, 3, 4];
const evens = numbers.filter(x => x % 2 === 0);
// evens: [2, 4]
3. reduce()
- 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.
- 예: 모든 요소의 합 구하기
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
// sum: 10
4. forEach()
- 배열의 각 요소에 대해 주어진 함수를 실행합니다. 반환값은 없습니다.
- 예: 각 요소 출력하기
const numbers = [1, 2, 3, 4];
numbers.forEach(x => console.log(x));
5. find()
- 주어진 판별 함수를 만족하는 첫 번째 요소의 값을 반환합니다. 만족하는 요소가 없으면 **undefined**를 반환합니다.
- 예: 3보다 큰 첫 번째 요소 찾기
const numbers = [1, 2, 3, 4];
const found = numbers.find(x => x > 3);
// found: 4
6. every()
- 배열의 모든 요소가 주어진 판별 함수를 만족하면 true를, 하나라도 만족하지 않으면 false를 반환합니다.
- 예: 모든 요소가 10보다 작은지 확인하기
const numbers = [1, 2, 3, 4];
const allLessThanTen = numbers.every(x => x < 10);
// allLessThanTen: true
7. some()
- 배열의 요소 중 하나라도 주어진 판별 함수를 만족하면 true를, 모두 만족하지 않으면 false를 반환합니다.
- 예: 어떤 요소라도 3보다 큰지 확인하기
const numbers = [1, 2, 3, 4];
const anyGreaterThanThree = numbers.some(x => x > 3);
// anyGreaterThanThree: true
이러한 고차 함수들은 코드의 가독성과 유지 보수성을 높여주며, 명령형 프로그래밍 대신 선언형 프로그래밍 스타일을 채택하는 데 도움을 줍니다. 함수형 프로그래밍 패러다임을 사용하여 부작용(side effects)을 최소화하고, 불변성(immutability)을 유지할 수 있습니다.
728x90
반응형
LIST
'javascript > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
정규 표현식(Regular Expression) (0) | 2024.02.21 |
---|---|
Number 와 Math (0) | 2024.02.21 |
클래스(Class) (0) | 2024.02.09 |
렉시컬스코프와 클로저의 차이점 (0) | 2024.02.09 |
실행 컨텍스트 ECMAScript 의 소스코드 4가지 타입 (0) | 2024.02.02 |