Изучение генераторов JavaScript: циклическая итерация массивов

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим концепцию генераторов в JavaScript и научимся создавать генератор цикла, который бесконечно перебирает массив. Мы будем использовать ключевое слово yield и цикл while для создания генератора, а затем тестировать его с разными массивами, чтобы понять, как он работает. В конце этого практического занятия у вас будет более глубокое понимание генераторов и того, как их можно использовать в своих проектах на JavaScript.

Инструкции по генератору цикла

Для начала практики программирования откройте Терминал/SSH и введите node. Затем создайте генератор, который будет бесконечно перебирать заданный массив. Вот шаги:

  1. Используйте неограниченный цикл while, который будет возвращать значение каждый раз, когда вызывается Generator.prototype.next().
  2. Используйте оператор модуля (%) с 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, чтобы улучшить свои навыки.