티스토리 뷰

Language/JavaScript

[Javascript] .filter()

무화과(Fig) 2022. 8. 10. 18:06

목차

1. Array.prototype.filter()

2. 예제

3. filter 특징


 

 

 

 

1. Array.prototype.filter()


filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.

-MDN

 

 

filter 함수는 해석 그대로 걸러주는 역할을 하는 함수이므로 주로 특정 조건을 만족하는 새로운 배열을 필요로 할 때 사용한다.

 

 

 

- 구문

arr.filter(callback(element, index, array), thisArg)

 

 

구문을 이루는 각 요소들은 다음과 같다.

 

 

▷ arr

- 순회하고자 하는 배열

 

▷ element

- 현재 배열의 요소

 

▷ index(생략 가능)

- 현재 배열 요소의 index

 

▷ array(생략 가능)

- filter 함수를 호출한 배열

 

▷ thisArg(생략 가능)

- callback을 실행할 때 this로 사용되는 값(= map 함수에서 사용될 this값)

 

 

 

 

 

2. 예제


0보다 큰 배열의 요소를 구하기 위해 filter 함수를 이용해보겠다.

const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];

const deposits = movements.filter(function(mov) {
  return mov > 0;
});
console.log(deposits); // [200, 450, 3000, 70, 1300]

 

 

 

for 문으로도 값을 구할 수 있지만 filter를 사용하면 더 짧고 간결하게 코드를 작성 할 수 있다.

const depositsFor = [];
for(const mov of movements) if(mov>0) depositsFor.push(mov);
console.log(depositsFor); // [200, 450, 3000, 70, 1300]

 

 

 

 

아래는 0보다 큰 배열의 요소를 filter 함수를 이용해 구한 것 이다.

const withdrawals = movements.filter(function(mov) {
  return mov < 0;
})
console.log(withdrawals);

 

 

 

 

3. filter 특징


filter의 가장 큰 특징은 boolean형태의 return값을 갖는다는 것이다.

return값이 true일 경우 그 요소를 반환하고 false일 경우 반환하지 않는다. 기본값은 false이다.

 

이외의 특징들은 다음과 같다.

 

  • 빠른편이다.
  • Array객체에서 사용이 가능하다.
  • chainable하다.
  • 빈 배열 요소를 반환하지 않는다.
  • 대용량 배열 처리시 메모리 overflow 가능성이 있다.
  • return값은 true/false이며, 요소를 반환한다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함