เจเนอเรเตอร์ใน JavaScript
มีฟังก์ชันพิเศษที่สามารถใช้สร้างอิตเทอเรเตอร์ของตัวเองได้ ฟังก์ชันดังกล่าวเรียกว่า เจเนอเรเตอร์ ชื่อของฟังก์ชันเหล่านี้ต้องขึ้นต้นด้วยดอกจัน:
function *func() {
}
ภายในเจเนอเรเตอร์จะใช้คำสั่ง
yield เพื่อระบุว่าอิตเทอเรเตอร์ควรส่งคืนค่าอะไรในการเรียกครั้งถัดไป ตัวอย่างเช่น
ลองทำให้การเรียกครั้งแรกส่งคืน 1 ครั้งที่สอง - 2
และครั้งที่สาม - 3:
function *func() {
yield 1;
yield 2;
yield 3;
}
เจเนอเรเตอร์จะส่งคืนอิตเทอเรเตอร์เป็นผลลัพธ์:
let iter = func();
ลองทดสอบการทำงานของอิตเทอเรเตอร์ของเรา:
console.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
สร้างอิตเทอเรเตอร์ที่การเรียกแต่ละครั้ง
จะส่งคืนตัวเลขจาก 5 ถึง 1