Введение
В этом практическом занятии мы изучим концепцию генераторов в JavaScript. В частности, мы узнаем, как создать генераторную функцию, которая генерирует новые значения, пока не будет достигнуто определенное условие. С помощью практических заданий по программированию мы лучше понеможем, как работают генераторы и как их можно использовать для упрощения кода и повышения его производительности.
Генерация значений до достижения заданного условия
Для начала практики программирования откройте Терминал/SSH и введите node. После этого вы можете создать генератор, который будет генерировать новые значения, пока не будет достигнуто заданное условие.
Чтобы создать этот генератор, следуйте шагам:
- Инициализируйте текущее
valс использованием значенияseed. - Используйте цикл
while, чтобы продолжать итерации, пока функцияcondition, вызываемая с текущимval, возвращаетfalse. - Используйте ключевое слово
yield, чтобы вернуть текущееvalи, по желанию, получить новое значениеseed,nextSeed. - Используйте функцию
next, чтобы вычислить следующее значение из текущегоvalиnextSeed.
Вот пример кода:
const generateUntil = function* (seed, condition, next) {
let val = seed;
let nextSeed = null;
while (!condition(val)) {
nextSeed = yield val;
val = next(val, nextSeed);
}
return val;
};
Вы можете использовать генератор, вызвав его с соответствующими аргументами. Например:
[
...generateUntil(
1,
(v) => v > 5,
(v) => ++v
)
]; // [1, 2, 3, 4, 5]
Это создаст массив значений от 1 до 5, так как условие v > 5 выполняется, когда val равно 6.
Резюме
Поздравляем! Вы завершили практическое занятие "Генерация до достижения условия". Вы можете выполнить больше практических заданий в LabEx, чтобы улучшить свои навыки.