อิเทอเรเตอร์ในตัวสามประเภทใน JavaScript
ในความเป็นจริงแล้ววัตถุที่สามารถวนซ้ำได้ทุกวัตถุ
มีอิเทอเรเตอร์ไม่ใช่หนึ่งตัว แต่มีสามตัว:
values, keys และ entries
วัตถุแต่ละประเภทจะมีอิเทอเรเตอร์เริ่มต้น
ที่ใช้แตกต่างกันไป สำหรับอาเรย์ - นั่นคือ values
และตัวอย่างเช่น สำหรับคอลเลกชัน Map
นั่นคือ entries
ด้วยความรู้เหล่านี้ ตอนนี้เราสามารถ
นำหลักการนี้ไปใช้กับคอลเลกชันใดๆ ก็ได้
ตัวอย่างเช่น สมมติว่าเรามีคอลเลกชัน Map:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
โดยค่าเริ่มต้นสำหรับคอลเลกชันนี้จะใช้
อิเทอเรเตอร์ entries:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
แต่เราสามารถรับคีย์ของ คอลเลกชันของเราได้อย่างง่ายดาย:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
และยังสามารถรับค่าด้วย:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
อิเทอเรเตอร์ใดที่ทำงานโดยค่าเริ่มต้น ในคอลเลกชัน Set?