이 모든 메서드를 정의하는 데 사용할 간단한 클래스를 설정해 보겠습니다. 해시 테이블을 저장할 컨테이너 개체를 만들고 테이블을 표시하는 표시 기능을 만듭니다. 충돌 해결을 위해 연결을 사용합니다.
표시 기능은 테이블의 각 항목(해시 값)을 가져와서 관련된 모든 쌍을 인쇄합니다.
예시
또한 키-값 쌍을 저장하기 위해 프로토타입에 새 클래스를 만들 것입니다.
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;
}
}
} 우리는 디스플레이 방법에서 구조 분해와 같은 몇 가지 고급 기능을 사용하고 있습니다. 이는 상용구 코드를 피하는 데 도움이 됩니다.