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

자바스크립트로 세트(Set) 비우기: clear() 메서드 구현하기

세트(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

내장 Setclear()는 세트에 포함된 모든 요소를 제거하며 반환값은 없습니다(undefined). 세트가 비었는지 확인하려면 size 속성이나 has() 메서드를 활용하면 편리합니다.