사전(Dictionary)에서 요소를 제거하려면, 먼저 해당 키가 사전에 존재하는지 확인해야 합니다. 이를 위해 hasKey 메서드를 사용하고, 키가 존재하는 경우 delete 연산자로 해당 요소를 바로 삭제할 수 있습니다.
또한 메서드가 Boolean 값을 반환하도록 하면, 호출한 곳에서 해당 키가 실제로 존재했는지 여부를 알 수 있어 코드의 신뢰성을 높일 수 있습니다.
예제: 커스텀 MyMap 구현
delete(key) {
if(this.hasKey(key)) {
delete this.container[key];
return true;
}
return false;
}위 메서드는 다음과 같이 테스트할 수 있습니다.
실행 예제
const myMap = new MyMap();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
myMap.display(); myMap.delete("key2");
myMap.display();출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
{ key1: 'value1', key2: 'value2' }
{ key1: 'value1' }ES6 Map 객체 사용하기
ES6부터는 내장 Map 객체에서 delete 메서드를 기본으로 제공하므로, 별도의 구현 없이 간편하게 값을 제거할 수 있습니다. 예를 들면 다음과 같습니다.
예제
const myMap = new Map([
["key1", "value1"],
["key2", "value2"]
]);
myMap.delete("key2");
console.log(myMap.has("key1"))
console.log(myMap.has("key2"))출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
true false
정리하면, 커스텀 사전 구조에서는 hasKey로 키의 존재 여부를 확인한 뒤 delete 연산자로 안전하게 삭제할 수 있고, ES6 환경이라면 내장 Map 객체의 delete 메서드를 활용하는 것이 가장 간단하고 권장되는 방법입니다.