세트(Set) 비우기: clear() 메서드
커스텀 세트(Set) 자료구조를 구현할 때, 저장된 모든 요소를 한 번에 제거하는 clear() 메서드는 매우 간단하게 만들 수 있습니다. 핵심 아이디어는 기존의 container 객체를 하나씩 순회하며 삭제하는 대신, 새로운 빈 객체를 통째로 재할당하는 것입니다. 이렇게 하면 이전에 저장된 모든 데이터가 사라지고 세트가 깨끗한 상태가 됩니다.
clear() 메서드 구현
clear() {
this.container = {};
}this.container = {} 코드는 컨테이너 변수를 새로운 빈 객체로 재할당합니다. JavaScript의 가비지 컬렉터가 더 이상 참조되지 않는 기존 객체를 자동으로 메모리에서 정리해 주기 때문에, 별도의 반복문이나 삭제 작업 없이도 세트 전체를 손쉽게 비울 수 있습니다.
동작 확인하기
실제로 잘 작동하는지 테스트해 보겠습니다. 몇 개의 요소를 추가한 후 display()로 출력하고, clear()를 호출한 뒤 다시 한번 출력해 봅니다.
const testSet = new MySet(); testSet.add(1); testSet.add(2); testSet.add(5); testSet.display(); testSet.clear(); testSet.display();
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
{ '1': 1, '2': 2, '5': 5 }
{ }첫 번째 출력에서는 추가한 세 개의 요소(1, 2, 5)가 모두 표시되지만, clear() 호출 이후에는 빈 객체만 남는 것을 확인할 수 있습니다.
참고: 내장 Set 객체의 clear() 메서드
JavaScript에서 기본으로 제공하는 Set 객체 역시 동일한 이름의 clear() 메서드를 제공합니다. 사용 방법은 다음과 같습니다.
const mySet = new Set([1, 2, 5]); console.log(mySet.size); // 3 mySet.clear(); console.log(mySet.size); // 0
내장 Set의 clear()는 세트에 포함된 모든 요소를 제거하며 반환값은 없습니다(undefined). 세트가 비었는지 확인하려면 size 속성이나 has() 메서드를 활용하면 편리합니다.