File tree Expand file tree Collapse file tree
1-js/12-generators-iterators/1-generators/01-pseudo-random-generator Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11``` js run demo
2-
32function * pseudoRandom (seed ) {
4-
53 let value = seed;
64
75 while (true ) {
8-
96 value = value * 16807 % 2147483647 ;
10-
117 yield value;
12-
138 }
149
1510};
1611
1712let generator = pseudoRandom (1 );
1813
1914alert (generator .next ().value ); // 16807
20-
2115alert (generator .next ().value ); // 282475249
22-
2316alert (generator .next ().value ); // 1622650073
24-
2517```
2618
27-
2819توجه داشته باشید که این کار را با توابع عادی هم میتوان انجام داد:
2920
3021``` js run
31-
3222function pseudoRandom (seed ) {
33-
3423 let value = seed;
3524
3625 return function () {
37-
3826 value = value * 16807 % 2147483647 ;
39-
4027 return value;
41-
4228 }
43-
4429}
4530
4631let generator = pseudoRandom (1 );
4732
4833alert (generator ()); // 16807
49-
5034alert (generator ()); // 282475249
51-
5235alert (generator ()); // 1622650073
53-
5436```
5537
56-
5738این گونه هم کار میکند. منتها قابلیت iterate کردن با ` for..of ` و generator composition از دست میرود که ممکن است جای دیگری مفید باشند.
You can’t perform that action at this time.
0 commit comments