Vòng lặp trong generator trong JavaScript

Bên trong generator, chúng ta có thể sử dụng vòng lặp. Đồng thời, chúng ta có thể tạm dừng vòng lặp bằng yield. Hãy xem ví dụ. Chúng ta sẽ tạm dừng vòng lặp sau mỗi lần lặp:

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

Chúng ta nhận được một iterator:

javascriptlet iter = func();

Hãy kiểm tra hoạt động của iterator của chúng ta:

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

Tạo một iterator, mỗi lần gọi sẽ trả về các số từ 10 đến 0.

Задание 2

Tạo một generator, nhận một số làm tham số. Mỗi lần gọi iterator sẽ giảm số đó đi một đơn vị, cho đến khi đạt đến 0.

Задание 3

Tạo một generator, nhận một số làm tham số. Mỗi lần gọi iterator sẽ giảm số đó đi một nửa và trả về kết quả. Và tiếp tục như vậy, cho đến khi số đó nhỏ hơn 1.

Задание 4

Tạo một iterator, mỗi lần gọi sẽ trả về lũy thừa tiếp theo của 2.

Задание 5

Tạo một iterator, mỗi lần gọi sẽ trả về số Fibonacci tiếp theo.