JS | 배열의 요소를 필터링해보자! Array.prototype.filter()

연이·2022년 11월 8일
1

JavaScript

목록 보기
3/4
post-thumbnail

💡 알고리즘 문제 풀이 중 분명 filter 쓰는 문제인 것 같은데... index 값을 쉽게 받아올 수는 없을까? 하는 고민에 빠지게 되었다. (처음부터 MDN 보면 됐을 텐데 ㅎㅎ) filter 메서드 쓸 때 index 값 쓸 때가 많은데 지금까지 삽질한듯... 잊지 않기 위해 기록해 두기!!

filter 메서드가 뭘까?

filter 메서드는 '여과한다'라는 사전적 정의에 맞게 자신이 호출한 배열의 모든 요소를 순회하면서 콜백 함수의 반환값이 true인 요소로만 구성된 새로운 배열을 반환하는 메서드이다.

const arr = [1,2,3,4,5,6]
arr.filter(el => el % 2 === 0) // [2, 4, 6]

따라서 자신이 호출한 배열(arr)에서 필터링 조건(el % 2 === 0)을 만족하는 특정 요소만을 추출하여 새로운 배열([2, 4, 6])을 만들고 싶을 때 사용한다.


filter 메서드는 콜백함수를 호출한다

filter 메서드는 배열.filter((매개변수) => {})의 형태로 콜백함수를 호출해 사용한다. 그렇다면 매개변수에는 어떤 것들이 들어갈까?

filter 메서드는 매개변수로 3가지를 가질 수 있다.

이것이 내가 간과한 부분이다...🙃

arr.filter((element, index, arr) => {})

1. 배열에서 처리 중인 현재 요소값

2. 배열에서 처리 중인 현재 요소의 인덱스

3. 호출 된 배열 자체(this)

filter 메서드의 매개변수가 하나가 아닌 3가지라는 것을 잊지 말도록 하자
만약 콜백함수의 매개변수로 전해줄 값이 index나 arr라면!!
arr.filter((_,index) => {}), arr.filter((_,_,arr) => {})
의 형태로 언더바(_)를 사용해 자리를 채워 주면 된다.

profile
💻 Front-end 개발자 지망생 연이입니다. 🚀

2개의 댓글

comment-user-thumbnail
2022년 11월 9일

와아~ 연이님~~ filter에 대해서 한번 더 잘 상기시키고 갑니다 ㅎㅎㅎ

1개의 답글