상세 컨텐츠

본문 제목

[nestJS] find와 filter의 차이점

카테고리 없음

by esoesmio 2024. 5. 12. 17:58

본문

JavaScript나 TypeScript에서 `.find()`와 `.filter()` 메소드는 유사해 보일 수 있지만, 실제로는 각기 다른 목적과 기능을 가지고 있습니다. 이 두 메소드는 배열을 다루는 데 사용되며, 배열의 각 요소에 대해 특정 조건을 평가하는 콜백 함수를 매개변수로 받습니다. 그러나 반환하는 결과와 사용 방법이 다릅니다.

### .find()

`.find()` 메소드는 주어진 함수에 의해 구현된 테스트를 통과하는 배열의 **첫 번째 요소**를 반환합니다. 해당하는 요소가 없으면 `undefined`를 반환합니다. `.find()`는 배열에서 조건을 만족하는 첫 번째 요소를 찾을 때 유용하며, 일반적으로 유일한 요소를 찾거나 특정 조건을 만족하는 첫 번째 요소를 빠르게 검색할 때 사용됩니다.

```javascript

let numbers = [5, 12, 8, 130, 44];
let firstLargeNumber = numbers.find(number => number > 10); // 12

```

### .filter()

`.filter()` 메소드는 주어진 함수에 의해 구현된 테스트를 통과하는 **모든 요소를 포함하는 새 배열**을 생성합니다. 조건을 만족하는 요소가 없으면 빈 배열을 반환합니다. `.filter()`는 특정 조건을 만족하는 모든 요소를 추출할 때 사용되며, 결과적으로 조건에 맞는 여러 요소를 모아 새로운 배열을 만듭니다.

```javascript

let numbers = [5, 12, 8, 130, 44];
let largeNumbers = numbers.filter(number => number > 10); // [12, 130, 44]


```

### 비교 및 사용 시나리오

- **`.find()` 사용 시나리오**: 특정 ID 또는 속성을 가진 객체를 배열에서 찾을 때 유용합니다. 예를 들어, 사용자 ID에 해당하는 단일 사용자 객체를 찾는 경우에 적합합니다.
- **`.filter()` 사용 시나리오**: 특정 조건을 만족하는 모든 요소를 필터링해야 할 때 사용합니다. 예를 들어, 특정 범위의 나이를 가진 모든 사용자를 찾거나, 특정 조건을 만족하는 여러 데이터 포인트를 필터링해야 할 경우 적합합니다.

두 메소드 모두 배열의 요소를 순회하며 주어진 콜백 함수의 조건에 따라 작업을 수행하지만, 반환하는 형태와 사용 목적에서 차이를 보입니다.

댓글 영역