본문 바로가기
프로그램

JavaScript에서 특정 배열 값을 찾아 삭제하는 방법

by 다온다올과함께 2025. 3. 17.

 

 

JavaScript에서 특정 배열 값을 찾아 삭제하는 방법은 여러 가지가 있습니다. 사용 목적(원본 배열 유지 여부, 단일/다중 값 삭제)에 따라 적절한 방법을 선택하세요.


 

1. filter 메서드 사용 (가장 추천)

특정 값을 제외한 새 배열을 반환합니다.
불변성 유지 → React/Next.js 프로젝트에서 안전하게 사용 가능

const fruits = ["apple", "banana", "orange", "banana"];
const updatedFruits = fruits.filter(fruit => fruit !== "banana");

console.log(updatedFruits); // ["apple", "orange"]

 

설명

  • filter는 조건(fruit !== "banana")에 맞는 요소만 새 배열로 반환합니다.
  • 원본 배열은 변경되지 않습니다.
  • 다수의 동일 값 제거 시 효율적입니다.

2. splice + indexOf (원본 배열 직접 변경)

원본 배열에서 첫 번째 일치 값만 제거합니다.

const fruits = ["apple", "banana", "orange"];
const index = fruits.indexOf("banana");

if (index !== -1) fruits.splice(index, 1);

console.log(fruits); // ["apple", "orange"]

 

설명

  • indexOf로 첫 일치 인덱스 찾기
  • splice(index, 1)로 해당 요소 직접 삭제
  • 원본 배열이 변경되니 주의!
  • 단일 값 제거 시 빠르고 간단합니다.

3. 모든 일치 값 제거 (while + indexOf)

배열에 같은 값이 여러 개 있을 때 사용합니다.

const numbers = [1, 2, 2, 3, 4, 2];
while (numbers.indexOf(2) !== -1) {
  numbers.splice(numbers.indexOf(2), 1);
}

console.log(numbers); // [1, 3, 4]

 

설명

  • while 루프를 사용해 모든 일치 값 제거
  • 원본 배열이 변경됩니다.
  • 같은 값이 많을 때 사용하지만 filter가 더 간단합니다.

4. 객체 배열에서 특정 값 삭제 (filter 사용)

const users = [
  { id: 1, name: "Alice" },
  { id: 2, name: "Bob" },
  { id: 3, name: "Charlie" },
];

// id가 2인 사용자 제거
const updatedUsers = users.filter(user => user.id !== 2);

console.log(updatedUsers);
// [{ id: 1, name: "Alice" }, { id: 3, name: "Charlie" }]

 

설명

  • 객체 배열에서 조건을 사용해 삭제할 때 이상적입니다.
  • 원본 배열 유지 + 새 배열 반환
  • React 상태 업데이트 시 강력 추천!

5. 특정 인덱스 제거 (slice + concat)

특정 위치의 요소 제거 시 사용합니다.

const fruits = ["apple", "banana", "orange"];
const indexToRemove = 1;

const updatedFruits = [
  ...fruits.slice(0, indexToRemove),
  ...fruits.slice(indexToRemove + 1)
];

console.log(updatedFruits); // ["apple", "orange"]

 

설명

  • 불변성 유지 + 새 배열 생성
  • 배열 일부만 제거할 때 유용합니다.

비교 및 추천

방법 특징 사용 추천 시기
filter 새 배열 반환, 불변성 유지 다수 요소 삭제, React 상태 관리
indexOf + splice 첫 일치 값 삭제, 원본 변경 빠르게 단일 값 제거 시
while + indexOf 모든 일치 값 반복 제거, 원본 변경 중복 값이 많은 배열 처리 시
객체 배열 + filter 조건 기반 삭제, 새 배열 반환 객체 배열에서 특정 요소 제거 시
     
slice + concat 인덱스 기반 삭제, 불변성 유지 위치 기반 제거 + 원본 유지 시

React/Next.js 프로젝트에서는

  • 불변성 유지가 중요하므로 filter 또는 slice + concat을 사용하세요!
  • 배열 상태를 직접 변경하면 렌더링이 트리거되지 않을 수 있습니다.

 

 

 

 

 

 

#배열 #javascript #react #삭제 #조금씩배워가는프로그래밍

 

 

 

반응형

댓글