이번 글에서는 사전(Dictionary) 자료구조에서 주어진 키(key)를 검색하는 get 메서드를 직접 구현해 보겠습니다.
get 메서드 구현 예제
get(key) {
if(this.hasKey(key)) {
return this.container[key];
}
return undefined;
}JavaScript 객체는 내부적으로 사전과 매우 유사한 방식으로 구현되어 있기 때문에, 대부분의 기능을 추가 코드 없이 그대로 활용할 수 있습니다. 또한 객체 접근은 엔진 차원에서 깊게 최적화되어 있으므로, 이 함수의 실행 성능에 대해 걱정할 필요가 없습니다.
동작 확인하기
구현한 get 메서드는 다음과 같이 테스트해 볼 수 있습니다.
예제 코드
const myMap = new MyMap();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
console.log(myMap.get("key1"))
console.log(myMap.get("key2"))
console.log(myMap.get("key3"))
실행 결과
value1
value2
undefined
존재하지 않는 키인 key3을 조회하면 undefined가 반환되는 것을 확인할 수 있습니다.
ES6 Map 객체 활용하기
ES6부터 제공되는 내장 Map 객체를 사용하면 동일한 기능을 get 메서드로 간편하게 처리할 수 있습니다.
예제 코드
const myMap = new Map([
["key1", "value1"],
["key2", "value2"]
]);
console.log(myMap.get("key1"))
console.log(myMap.get("key2"))
실행 결과
value1
value2
직접 구현한 MyMap 클래스와 마찬가지로, 존재하는 키에 대해서는 해당 값을 정상적으로 반환합니다. 실무에서는 별도의 구현 없이 ES6의 Map 객체를 사용하는 것이 더 안전하고 효율적인 선택입니다.