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