ตอนนี้เราจะสร้างฟังก์ชัน forEach ที่จะช่วยให้เราวนลูปผ่านคู่คีย์-ค่า (key-value pairs) ทั้งหมด และเรียก callback function กับค่าเหล่านั้น เราเพียงแค่ต้องวนลูปผ่านแต่ละ chain ใน container และเรียก callback กับคู่คีย์-ค่า
ตัวอย่างโค้ด
forEach(callback) {
// สำหรับแต่ละ chain
this.container.forEach(elem => {
// สำหรับแต่ละ element ในแต่ละ chain เรียก callback กับคู่ KV
elem.forEach(({ key, value }) => callback(key, value));
});
}
คุณสามารถทดสอบได้ดังนี้:
ตัวอย่างการใช้งาน
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); let sum = 0; // รวมค่าทั้งหมดเข้าด้วยกัน ht.forEach((k, v) => sum += v); console.log(sum);
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
228