Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 Set에서 모든 요소를 제거하는 방법

자바스크립트의 Set 객체는 저장된 모든 요소를 한 번에 삭제할 수 있는 clear() 메서드를 기본적으로 제공합니다. 이 메서드는 인자 없이 호출하며, 호출 즉시 해당 Set 객체가 비워집니다.

clear() 메서드 사용 예제

let mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(1);
mySet.add(3);
mySet.add("a");
console.log(mySet)
mySet.clear();
console.log(mySet)

실행 결과

Set { 1, 2, 3, 'a' }
Set { }

위 예제에서 볼 수 있듯이, clear() 메서드를 호출한 후에는 Set 객체에 있던 모든 요소가 사라지고 빈 Set만 남게 됩니다. 참고로 중복된 값인 1은 Set의 특성상 한 번만 저장됩니다.

반복문을 이용해 요소를 하나씩 제거하는 방법

특별한 상황(예: 각 요소를 처리하면서 동시에 삭제해야 하는 경우)이라면, 요소를 순회하면서 delete() 메서드로 개별적으로 제거할 수도 있습니다.

let mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(1);
mySet.add(3);
mySet.add("a");
console.log(mySet)
for(let i of mySet) {
    console.log(i)
    mySet.delete(i)
}
console.log(mySet)

실행 결과

Set { 1, 2, 3, 'a' }
Set { }

자바스크립트의 Set은 내부적으로 반복 중 요소 삭제를 안전하게 처리하도록 설계되어 있기 때문에, 위와 같이 for...of 루프 안에서 delete()를 호출해도 오류 없이 정상적으로 동작합니다.

정리

  • 모든 요소를 한 번에 제거하려면 set.clear() 메서드를 사용하는 것이 가장 간단하고 효율적입니다.
  • 요소를 하나씩 제거해야 하는 경우에는 for...of 반복문과 set.delete(value) 메서드를 조합하여 사용할 수 있습니다.