Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 7월.
Array 인스턴스의 filter() 메서드는 주어진 배열의 일부에 대한 얕은 복사본을 생성하고, 주어진 배열에서 제공된 함수에 의해 구현된 테스트를 통과한 요소로만 필터링 합니다.
배열의 각 요소에 대해 실행할 함수입니다. 결과 배열에 요소를 유지하려면 참 값을 반환하고 그렇지 않으면 거짓 값을 반환해야 합니다. 이 함수는 다음 인수를 사용하여 호출됩니다.
element배열에서 처리 중인 현재 요소.
index배열에서 처리 중인 현재 요소의 인덱스.
arrayfilter()가 호출된 배열.
thisArg OptionalcallbackFn을 실행할 때 this 값으로 사용할 값입니다. 순회 메서드를 참조하세요.
주어진 배열에서 테스트를 통과한 요소만 포함하는 해당 배열의 얕은 복사본 배열입니다. 테스트를 통과한 요소가 없으면 빈 배열이 반환됩니다.
filter() 메서드는 순회 메서드입니다. 이 메서드는 배열의 각 요소에 대해 제공된 callbackFn 함수를 한 번씩 호출하고, callbackFn이 참 값을 반환하는 모든 값으로 새 배열을 구성합니다. callbackFn 테스트를 통과하지 못한 배열 요소는 새 배열에 포함되지 않습니다.
callbackFn은 값이 할당된 배열 인덱스에 대해서만 호출됩니다. 희소 배열의 빈 슬롯에는 호출되지 않습니다.
filter() 메서드는 복사 메서드입니다. 이 메서드는 this를 변경하지 않는 대신 원래 배열의 요소와 동일한 요소를 포함하는 얕은 복사본을 반환합니다(일부 필터링 된 요소 제외). 하지만, callbackFn으로 제공된 함수는 배열을 변경할 수 있습니다. 그러나 배열의 length는 callbackFn을 처음 호출하기 전에 저장된다는 점에 유의하세요. 따라서,
경고 : 위에서 설명한 종류의 동시 수정은 이해하기 어려운 코드를 만드는 경우가 많으므로 일반적으로 지양해야 합니다(특별한 경우 제외).
filter() 메서드는 범용입니다. this 값에는 length 속성과 정수 키 속성만 있을 것으로 예상합니다.
다음 예제는 filter()를 사용하여 값이 10 미만인 요소가 모두 제거된 필터링된 배열을 만듭니다.
다음 예제는 배열의 모든 소수를 반환합니다.
다음 예제는 filter()를 사용하여 모든 요소의 id가 0이 아닌 숫자인 필터링된 JSON을 생성합니다.
다음 예제는 filter()를 사용하여 검색 조건에 따라 배열 콘텐츠를 필터링합니다.
array 인수는 배열의 다른 요소에 접근하려는 경우, 특히 배열을 참조하는 기존 변수가 없는 경우에 유용합니다. 다음 예제에서는 먼저 map()을 사용하여 각 이름에서 숫자 ID를 추출한 다음 filter()를 사용하여 인접한 이름보다 큰 이름을 선택합니다.
array 인수는 작성 중인 배열이 아닙니다. 따라서 콜백 함수에서 작성 중인 배열에 접근할 수 없습니다.
filter()는 빈 슬롯을 건너뜁니다.
filter() 메서드는 this의 length 속성을 읽은 다음, 키가 length보다 작은 음수가 아닌 정수 키의 각 속성에 모두 접근합니다.
다음 예제는 배열이 수정되었을 때 filter 메서드의 동작을 테스트합니다.
| ECMAScript® 2027 Language Specification # sec-array.prototype.filter |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025년 10월 10일 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.