Để xóa phần tử, chúng ta chỉ cần tìm thấy nó và xóa bằng một lời gọi hàm splice đơn giản để xóa phần tử ngay tại chỗ từ mảng.
Hãy xem triển khai cụ thể:
Ví dụ
remove(key) {
let hashCode = this.hash(key);
for (let i = 0; i < this.container[hashCode].length; i++) {
// Tìm phần tử trong chain
if (this.container[hashCode][i].key === key) {
this.container[hashCode].splice(i, 1);
return true;
}
}
return false;
}
Bạn có thể kiểm tra bằng cách sau:
Ví dụ
let ht = new HashTable(); ht.put(10, 94); ht.put(20, 72); ht.put(30, 1); ht.put(21, 6); ht.put(15, 21); ht.put(32, 34); console.log(ht.get(20)); console.log(ht.remove(20)); console.log(ht.get(20)); console.log(ht.remove(20));
Kết quả
Điều này sẽ cho ra kết quả:
{ key: 20, value: 72 } true undefined false
Lần đầu trả về true vì tìm thấy và xóa thành công. Lần sau, vì không còn tồn tại, hàm remove trả về false.