بازگشت به درس
این محتوا تنها در این زبان‌ها موجود است: عربي, English, Español, Français, 日本語, 한국어, Русский, Türkçe, Українська, 简体中文. لطفاً به ما
function* pseudoRandom(seed) {
  let value = seed;

  while(true) {
    value = value * 16807 % 2147483647;
    yield value;
  }

};

let generator = pseudoRandom(1);

alert(generator.next().value); // 16807
alert(generator.next().value); // 282475249
alert(generator.next().value); // 1622650073

Please note, the same can be done with a regular function, like this:

function pseudoRandom(seed) {
  let value = seed;

  return function() {
    value = value * 16807 % 2147483647;
    return value;
  }
}

let generator = pseudoRandom(1);

alert(generator()); // 16807
alert(generator()); // 282475249
alert(generator()); // 1622650073

That also works. But then we lose ability to iterate with for..of and to use generator composition, that may be useful elsewhere.

باز کردن راه‌حل همراه با تست‌ها درون یک sandbox.