javascript/모던 자바스크립트 Deep Dive
배열의 고차함수
yongfront
2024. 2. 10. 18:48
반응형
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