เจเนอเรเตอร์ใน JavaScript

มีฟังก์ชันพิเศษที่สามารถใช้สร้างอิตเทอเรเตอร์ของตัวเองได้ ฟังก์ชันดังกล่าวเรียกว่า เจเนอเรเตอร์ ชื่อของฟังก์ชันเหล่านี้ต้องขึ้นต้นด้วยดอกจัน:

javascriptfunction *func() {
  
}

ภายในเจเนอเรเตอร์จะใช้คำสั่ง yield เพื่อระบุว่าอิตเทอเรเตอร์ควรส่งคืนค่าอะไรในการเรียกครั้งถัดไป ตัวอย่างเช่น ลองทำให้การเรียกครั้งแรกส่งคืน 1 ครั้งที่สอง - 2 และครั้งที่สาม - 3:

javascriptfunction *func() {
  yield 1;
  yield 2;
  yield 3;
}

เจเนอเรเตอร์จะส่งคืนอิตเทอเรเตอร์เป็นผลลัพธ์:

javascriptlet iter = func();

ลองทดสอบการทำงานของอิตเทอเรเตอร์ของเรา:

javascriptconsole.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}
Задание 1

สร้างอิตเทอเรเตอร์ที่การเรียกแต่ละครั้ง จะส่งคืนตัวเลขจาก 5 ถึง 1