Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

자바스크립트를 이용한 해시 테이블 생성

<시간/>

이 모든 메서드를 정의하는 데 사용할 간단한 클래스를 설정해 보겠습니다. 해시 테이블을 저장할 컨테이너 개체를 만들고 테이블을 표시하는 표시 기능을 만듭니다. 충돌 해결을 위해 연결을 사용합니다.

표시 기능은 테이블의 각 항목(해시 값)을 가져와서 관련된 모든 쌍을 인쇄합니다.

예시

또한 키-값 쌍을 저장하기 위해 프로토타입에 새 클래스를 만들 것입니다.

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;
      }
   }
}

우리는 디스플레이 방법에서 구조 분해와 같은 몇 가지 고급 기능을 사용하고 있습니다. 이는 상용구 코드를 피하는 데 도움이 됩니다.