Files
30-seconds-of-code/snippets/js/s/generate-while.md
2023-05-10 22:35:09 +03:00

930 B

title, type, language, tags, author, cover, dateModified
title type language tags author cover dateModified
Generate while condition is met snippet javascript
function
generator
chalarangelo yellow-sofa 2022-01-21T05:00:00-04:00

Creates a generator, that keeps producing new values as long as the given condition is met.

  • Initialize the current val using the seed value.
  • Use a while loop to iterate while the condition function called with the current val returns true.
  • Use yield to return the current val and optionally receive a new seed value, nextSeed.
  • Use the next function to calculate the next value from the current val and the nextSeed.
const generateWhile = function* (seed, condition, next) {
  let val = seed;
  let nextSeed = null;
  while (condition(val)) {
    nextSeed = yield val;
    val = next(val, nextSeed);
  }
  return val;
};
[...generateWhile(1, v => v <= 5, v => ++v)]; // [1, 2, 3, 4, 5]