ให้เราตั้งค่าคลาสง่าย ๆ ที่เราจะใช้เพื่อกำหนดวิธีการเหล่านี้ทั้งหมด เราจะสร้างวัตถุคอนเทนเนอร์เพื่อจัดเก็บตารางแฮชและสร้างฟังก์ชันการแสดงผลเพื่อแสดงตาราง โปรดทราบว่าสำหรับการแก้ปัญหาการชน เราจะใช้การโยง
ฟังก์ชันการแสดงผลจะนำแต่ละรายการ (ค่าที่แฮช) มาไว้ในตารางและพิมพ์คู่ทั้งหมดที่เกี่ยวข้องกัน
ตัวอย่าง
นอกจากนี้เรายังจะสร้างคลาสใหม่ในต้นแบบเพื่อจัดเก็บคู่คีย์-ค่า
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; } } }
เรากำลังใช้คุณลักษณะขั้นสูงบางอย่าง เช่น การทำลายโครงสร้างในวิธีการแสดง ที่ช่วยหลีกเลี่ยงรหัสต้นแบบ