Hãy để chúng tôi thiết lập một lớp đơn giản mà chúng tôi sẽ sử dụng để định nghĩa tất cả các phương thức này. Chúng ta sẽ tạo một đối tượng vùng chứa để lưu trữ bảng băm và tạo một hàm hiển thị để hiển thị bảng. Lưu ý rằng để giải quyết xung đột, chúng tôi sẽ sử dụng chuỗi.
Hàm hiển thị nhận từng mục nhập (giá trị băm) trong bảng và in tất cả các cặp được liên kết với nó.
Ví dụ
Chúng tôi cũng sẽ tạo một lớp mới trên nguyên mẫu để lưu trữ các cặp khóa-giá trị.
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; } } }
Chúng tôi đang sử dụng một số tính năng nâng cao như cấu trúc hủy trong phương thức hiển thị. Điều đó giúp tránh mã viết sẵn.