简介
在本实验中,我们将探索 JavaScript 中生成器的概念,并学习如何创建一个无限循环遍历数组的循环生成器。我们将使用 yield 关键字和 while 循环来创建生成器,然后用不同的数组对其进行测试,以了解它的工作原理。在本实验结束时,你将对生成器以及它们如何在你的 JavaScript 项目中使用有更深入的理解。
循环生成器说明
要开始练习编码,请打开终端/SSH 并输入 node。然后,创建一个无限循环遍历给定数组的生成器。以下是步骤:
- 使用一个不会终止的
while循环,每次调用Generator.prototype.next()时都会yield一个值。 - 将取模运算符 (
%) 与Array.prototype.length一起使用,以获取下一个值的索引,并在每次yield语句后增加计数器。
以下是 cycleGenerator 函数的示例:
const cycleGenerator = function* (arr) {
let i = 0;
while (true) {
yield arr[i % arr.length];
i++;
}
};
然后你可以按如下方式使用该函数:
const binaryCycle = cycleGenerator([0, 1]);
binaryCycle.next(); // { value: 0, done: false }
binaryCycle.next(); // { value: 1, done: false }
binaryCycle.next(); // { value: 0, done: false }
binaryCycle.next(); // { value: 1, done: false }
按照这些说明,你可以创建一个无限循环遍历任何数组的循环生成器。
总结
恭喜你!你已经完成了循环生成器实验。你可以在 LabEx 中练习更多实验来提升你的技能。