Javascript filter()란?
자바스크립트에서 `filter()` 메서드는 배열 내의 요소를 필터링하여 새로운 배열을 만드는 데 사용됩니다. 이 메서드는 각 요소에 대해 주어진 함수를 호출하고, 그 함수가 `true`를 반환하는 요소만 모아서 새로운 배열을 반환합니다. `filter()` 메서드는 원본 배열을 변경하지 않고 새로운 배열을 반환하므로 함수형 프로그래밍에서 유용하게 사용됩니다.
`filter()` 메서드는 일반적으로 콜백 함수를 사용하여 배열 요소를 평가합니다. 이 콜백 함수는 세 가지 매개변수를 받습니다. 첫 번째 매개변수는 현재 요소의 값, 두 번째 매개변수는 현재 요소의 인덱스, 세 번째 매개변수는 배열 전체입니다.
간단한 예시로 시작해보겠습니다. 다음은 숫자로 이루어진 배열에서 짝수만 필터링하는 예제입니다.
```javascript
const numbers = [1, 2, 3, 4, 5, 6];
const evenNumbers = numbers.filter(function(number) {
return number % 2 === 0;
});
console.log(evenNumbers); // 출력: [2, 4, 6]
```
위의 코드에서 `filter()` 메서드는 배열 `numbers`의 각 요소를 순회하며 콜백 함수를 호출합니다. 콜백 함수에서는 각 요소를 2로 나눈 나머지가 0인지를 확인하여 짝수인지를 판별하고, 그 결과가 `true`인 요소만 새로운 배열 `evenNumbers`에 포함시킵니다.
더 복잡한 예시를 살펴보겠습니다. 다음은 객체로 이루어진 배열에서 특정 조건을 만족하는 요소만 필터링하는 예제입니다.
```javascript
const products = [
{ name: '스마트폰', price: 800 },
{ name: '노트북', price: 1200 },
{ name: '테블릿', price: 500 },
{ name: '이어폰', price: 100 }
];
const affordableProducts = products.filter(function(product) {
return product.price <= 1000;
});
console.log(affordableProducts);
// 출력: [{ name: '스마트폰', price: 800 }, { name: '테블릿', price: 500 }, { name: '이어폰', price: 100 }]
```
위의 코드에서는 `filter()` 메서드를 사용하여 `products` 배열에서 가격이 1000 이하인 상품만 필터링합니다. 콜백 함수는 각 상품 객체를 받아 해당 상품의 가격이 1000 이하인지를 확인하고, 그 결과가 `true`인 상품만 `affordableProducts` 배열에 담습니다.
`filter()` 메서드는 화살표 함수를 사용하여 더 간결하게 표현할 수도 있습니다.
```javascript
const numbers = [1, 2, 3, 4, 5, 6];
const evenNumbers = numbers.filter(number => number % 2 === 0);
console.log(evenNumbers); // 출력: [2, 4, 6]
```
화살표 함수를 사용하면 코드가 더 간결해지고 가독성이 향상됩니다.
또한, `filter()` 메서드는 체인으로 연결하여 사용할 수 있습니다. 이를 통해 여러 필터 조건을 한 번에 적용할 수 있습니다.
```javascript
const numbers = [1, 2, 3, 4, 5, 6];
const filteredNumbers = numbers
.filter(number => number % 2 === 0) // 짝수 필터링
.filter(number => number > 2); // 2보다 큰 숫자 필터링
console.log(filteredNumbers); // 출력: [4, 6]
```
위의 코드에서는 먼저 짝수를 필터링하고, 그 결과에서 2보다 큰 숫자만 필터링하여 최종 결과를 얻습니다.
`filter()` 메서드를 사용하면 배열을 효율적으로 필터링할 수 있으며, 함수형 프로그래밍의 개념을 적용하여 코드를 더 간결하고 읽기 쉽게 작성할 수 있습니다.
'게으른 개발자의 끄적거림' 카테고리의 다른 글
errors have occurred while calculating the synchronization state for svn workspace 해결 방법 (svn 오류) (1) | 2024.05.07 |
---|---|
javascript each()란? (0) | 2024.05.02 |
JPA란? 기본 CRUD 예제 (0) | 2024.04.29 |
jQuery $.function 이란? (0) | 2024.04.25 |
Java Exception 완벽 정리 (0) | 2024.04.24 |