자바스크립트에서 사전(Dictionary) 혹은 맵(Map)에 저장된 모든 데이터를 한 번에 삭제하고 싶을 때는 clear() 함수를 활용하면 됩니다. 이번 글에서는 직접 만든 맵 클래스에 clear() 함수를 구현하는 방법과, ES6에서 기본 제공되는 Map 객체의 clear 메서드 사용법을 예제와 함께 살펴보겠습니다.
직접 구현한 맵에서 clear() 함수 만들기
clear() 함수는 매우 간단합니다. 내부 컨테이너(container)를 빈 객체로 다시 할당하기만 하면, 기존에 저장된 모든 키-값 쌍이 한꺼번에 사라집니다.
clear() {
this.container = {}
}구현한 clear() 함수가 실제로 정상 동작하는지 아래 코드로 확인해 보겠습니다.
const myMap = new MyMap();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
myMap.display();
myMap.clear();
myMap.display();
실행 결과
위 코드를 실행하면 다음과 같은 출력을 얻습니다.
{ key1: 'value1', key2: 'value2' }첫 번째 display() 호출 시에는 저장된 두 개의 키-값 쌍이 출력되고, clear() 실행 후 두 번째 display() 호출 시에는 빈 객체가 출력되어 모든 데이터가 정상적으로 삭제된 것을 확인할 수 있습니다.
ES6 Map 객체에서 clear() 사용하기
ES6부터 자바스크립트에는 맵 자료구조가 기본으로 내장되어 있으며, 여기에도 동일하게 clear() 메서드가 제공됩니다. 사용 방식은 직접 구현한 버튼과 거의 같습니다.
const myMap = new Map([
["key1", "value1"],
["key2", "value2"]
]);
console.log(myMap)
myMap.clear();
console.log(myMap)
실행 결과
Map { 'key1' => 'value1', 'key2' => 'value2' }
Map {}출력 결과를 보면, clear() 호출 전에는 두 개의 키-값 쌍이 담긴 Map이 출력되지만, 호출 후에는 완전히 비어 있는 Map {}이 출력됩니다. 즉, ES6 Map의 clear() 메서드도 모든 요소를 한 번에 제거하는 역할을 합니다.
정리
사전이나 맵의 전체 데이터를 삭제할 때는 개별 키를 하나씩 지우는 것보다 clear()를 사용하는 것이 훨씬 간단하고 효율적입니다. 직접 구현한 맵이라면 내부 컨테이너를 빈 객체로 초기화하면 되고, ES6 Map이라면 기본 제공되는 clear() 메서드를 그대로 호출하면 됩니다.