OI7MI

[JavaScript] filter() – 배열에서 특정 값 제거하기 본문

프론트엔드/JavaScript

[JavaScript] filter() – 배열에서 특정 값 제거하기

OI7MI 2025. 12. 15. 04:32
filter()
배열에서 조건을 통과한 요소만 남겨서 새로운 배열을 만드는 메서드로
원본 배열은 변경되지 않는다.

 

(각 요소가 조건을 통과(true)하면 남기고, 통과하지 못하면(false) 버림)


 

 

1. filter의 기본 동작

array.filter()
  • 배열의 요소를 하나씩 함수에 전달
  • 함수는 반드시 true 또는 false를 반환
  • true → 결과 배열에 포함
  • false → 결과 배열에서 제외

👉 true만 남긴다

 

 


 

 

2. 항상 true / false를 반환하면?

 
[1, 2, 3].filter(() => true); // [1, 2, 3]

[1, 2, 3].filter(() => false); // []
  • 항상 true → 전부 남김
  • 항상 false → 전부 제거

 

 


 

 

3. 특정 값 제거하기

 
const arr = ['a', 'b', 'c']; 
arr.filter(item => item !== 'a'); // ['b', 'c']

 

  • 'a' → false → 제거
  • 'b' → true → 유지
  • 'c' → true → 유지

 


 

 

 

4. 객체 배열에서 삭제 (Todo 예제)

toDos = toDos.filter(todo => todo.id !== targetId);

 

  • targetId와 같은 id만 false
  • 나머지는 모두 true
  • 결과적으로 해당 Todo 하나만 제거

 


filter를 한 문장으로 요약하면 filter()는
각 요소를 검사해서 true인 것만 모아 새 배열을 만든다.
핵심 정리
  • filter()는 삭제용 함수가 아니라 “선별” 함수
  • false를 모으는 게 아니라 true를 남긴다
  • 원본 배열은 변하지 않고 새 배열을 반환
  • 삭제 로직은 “지울 대상만 false로 만드는 방식”