ลูปในเจเนอเรเตอร์ใน JavaScript

ภายในเจเนอเรเตอร์สามารถใช้ ลูปได้ ในขณะเดียวกันเรายังสามารถหยุดลูปชั่วคราว ได้โดยใช้ yield มาดูตัวอย่างกัน เราจะหยุดลูปชั่วคราวทุกครั้งในการวนซ้ำ:

javascriptfunction *func() {
  for (let i = 1; i <= 3; i++) {
    yield i;
  }
}

รับอิเทอเรเตอร์:

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

สร้างอิเทอเรเตอร์ ที่ทุกครั้งที่เรียกใช้ จะคืนค่าตัวเลขจาก 10 ลงไปจนถึงศูนย์

Задание 2

สร้างเจเนอเรเตอร์ ที่รับพารามิเตอร์ เป็นตัวเลข ให้ทุกครั้งที่เรียกใช้ อิเทอเรเตอร์ลดตัวเลขลงทีละหนึ่ง จนกว่าจะถึงศูนย์

Задание 3

สร้างเจเนอเรเตอร์ ที่รับพารามิเตอร์ เป็นตัวเลข ให้ทุกครั้งที่เรียกใช้ อิเทอเรเตอร์ลดตัวเลขลงครึ่งหนึ่ง และคืนค่าผลลัพธ์ และทำเช่นนี้ไปเรื่อยๆ จนกว่าตัวเลขจะน้อยกว่าหนึ่ง

Задание 4

สร้างอิเทอเรเตอร์ ที่ทุกครั้งที่เรียกใช้ จะคืนค่ากำลังสองถัดไป

Задание 5

สร้างอิเทอเรเตอร์ ที่ทุกครั้งที่เรียกใช้ จะคืนค่าตัวเลขฟีโบนัชชีถัดไป