Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การสร้าง Hash Table ด้วย JavaScript


มาสร้างคลาสง่ายๆ ที่เราจะใช้สร้างเมธอดต่างๆ เราจะสร้าง container object เพื่อเก็บ hash table และสร้างฟังก์ชัน display เพื่อแสดงตาราง สำหรับการจัดการ collision เราจะใช้ chaining

ฟังก์ชัน display จะนำแต่ละ entry (ค่าที่ hash แล้ว) ในตารางมาแสดงคู่ข้อมูลทั้งหมดที่เกี่ยวข้อง

ตัวอย่างโค้ด

เราจะสร้างคลาสใหม่บน prototype เพื่อเก็บคู่คีย์-ค่า:

class HashTable {
  constructor() {
    this.container = [];
    // เติม container ด้วย array ว่างๆ
    // ซึ่งใช้เพิ่ม element เพิ่มเติมในกรณี collision
    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;
  }
}

เราใช้ฟีเจอร์ขั้นสูงอย่าง destructuring ในเมธอด display ช่วยลดโค้ด boilerplate