Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Gộp hai Hash Table trong JavaScript


Đôi khi cần kết hợp các container lại với nhau bằng hàm join và nhận về một container mới. Chúng ta sẽ viết một phương thức join tĩnh nhận 2 HashTable và tạo một HashTable mới chứa tất cả giá trị. Để đơn giản, ta sẽ cho giá trị từ cái thứ 2 ghi đè giá trị của cái thứ 1 nếu có khóa xuất hiện trong cả hai.

Ví dụ

static join(table1, table2) {
  // Kiểm tra cả 2 tham số có phải HashTable không
  if(!table1 instanceof HashTable || !table2 instanceof HashTable) {
    throw new Error("Illegal Arguments")
  }
  let combo = new HashTable();
  table1.forEach((k, v) => combo.put(k, v));
  table2.forEach((k, v) => combo.put(k, v));
  return combo;
}

Bạn có thể kiểm tra bằng cách sau:

Ví dụ

let ht1 = new HashTable();
ht1.put(10, 94);
ht1.put(20, 72);
ht1.put(30, 1);
let ht2 = new HashTable();
ht2.put(21, 6);
ht2.put(15, 21);
ht2.put(32, 34);
let htCombo = HashTable.join(ht1, ht2)
htCombo.display();

Ví dụ

Điều này sẽ cho ra kết quả:

0: 1: 2: 3: 4: { 15: 21 } 5: 6: 7: 8: { 30: 1 } 9: { 20: 72 } 10: { 10: 94 } --> { 21: 6 } --> { 32: 34 }