이 모든 메서드를 정의하는 데 사용할 간단한 클래스를 설정해 보겠습니다. 해시 테이블을 저장할 컨테이너 개체를 만들고 테이블을 표시하는 표시 기능을 만듭니다. 충돌 해결을 위해 연결을 사용합니다.
표시 기능은 테이블의 각 항목(해시 값)을 가져와서 관련된 모든 쌍을 인쇄합니다.
예시
또한 키-값 쌍을 저장하기 위해 프로토타입에 새 클래스를 만들 것입니다.
class HashTable { constructor() { this.container = []; // Populate the container with empty arrays // which can be used to add more elements in // cases of collisions for(let i=0; i < 11; i ++ ) { this.container.push([]); } display() { this.container.forEach((value, index) => { let chain = value .map(({ key, value }) => `{ ${key}: ${value} }`) .join(" --> "); console.log(`${index}: ${chain}`); }); } hash(key) { return key % 11; } } HashTable.prototype.KVPair = class { constructor(key, value) { this.key = key; this.value = value; } } }
우리는 디스플레이 방법에서 구조 분해와 같은 몇 가지 고급 기능을 사용하고 있습니다. 이는 상용구 코드를 피하는 데 도움이 됩니다.