回答編集履歴

29

テキスト修正

2018/06/24 14:22

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -168,6 +168,20 @@
168
168
 
169
169
  ```javascript
170
170
 
171
+ let num = [...Array(10)].map((_ ,i) => i+1);
172
+
173
+
174
+
175
+ console.log(num); // => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
176
+
177
+ ```
178
+
179
+
180
+
181
+ または、
182
+
183
+ ```javascript
184
+
171
185
  let num = Array(10).fill(0).map((_ ,i) => i+1);
172
186
 
173
187
 

28

テキスト修正

2018/06/24 14:22

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -160,7 +160,9 @@
160
160
 
161
161
  1から10までの整数が要素として入っている配列を作って、`let num` に入れることが
162
162
 
163
- 主目的なのであれば、以下のようにすると `for`を使わない出来ます。
163
+ 主目的なのであれば、以下のようにすると、クロージャもジェネレータも不要、かつ、
164
+
165
+ `for`ループも使わないで出来ます。
164
166
 
165
167
 
166
168
 

27

テキスト修正

2018/06/10 15:25

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -56,23 +56,9 @@
56
56
 
57
57
 
58
58
 
59
- 以下、ご質問の本題からやや外れるかもしれませんが、補足します
59
+ 以下、ご質問の本題からやや外れるかもしれませんが、補足しますと、
60
60
 
61
-
62
-
63
- 以下の3点
64
-
65
-
66
-
67
- - グローバル変数を使わずに、
68
-
69
- - 1回の呼び出しで、出力すべき値が1ずつ増えていき、
70
-
71
- - 次の呼び出しまで、現在の値を保持する。
72
-
73
-
74
-
75
- が要件だとすると、[ジェネレータ](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Generator)を使って以下のような実現方法もあるかなと思いました。
61
+ [ジェネレータ](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Generator)を使って以下のような実現方法もあるかなと思いました。
76
62
 
77
63
 
78
64
 
@@ -104,7 +90,7 @@
104
90
 
105
91
 
106
92
 
107
- "近いもの" なります。
93
+ (近いものに) なります。
108
94
 
109
95
  欲しい値(今の場合、1から始まり 10 まで1ずつ増える整数)は `f.next()` が返す値
110
96
 

26

テキスト修正

2018/06/10 14:52

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -142,7 +142,7 @@
142
142
 
143
143
 
144
144
 
145
- 上記のような `increaseGen` を作っておくことによって、
145
+ 上記のような `increaseGen` を作っておくことによって、`for`ループを使わなくても
146
146
 
147
147
 
148
148
 

25

テキスト修正

2018/06/10 14:26

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -80,9 +80,11 @@
80
80
 
81
81
  function* increaseGen(start, end) {
82
82
 
83
- while ( start <= end )
83
+ let n = start;
84
84
 
85
+ while ( n <= end )
86
+
85
- yield start ++;
87
+ yield n ++;
86
88
 
87
89
  }
88
90
 

24

テキスト修正

2018/06/10 14:21

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  ---
54
54
 
55
- **補足**
55
+ **補足 1**
56
56
 
57
57
 
58
58
 
@@ -90,29 +90,51 @@
90
90
 
91
91
  const f = increaseGen(1, 10);
92
92
 
93
+ ```
93
94
 
94
95
 
95
- console.log(f.next().value); // => 1
96
96
 
97
- console.log(f.next().value); // => 2
97
+ こうすると、`f.next` が、ご質問のタイトルにある
98
98
 
99
- console.log(f.next().value); // => 3
100
99
 
101
- console.log(f.next().value); // => 4
102
100
 
103
- console.log(f.next().value); // => 5
101
+ > 呼び出されるたびに戻り値が一ずつ増える関数
104
102
 
105
- console.log(f.next().value); // => 6
106
103
 
107
- console.log(f.next().value); // => 7
108
104
 
109
- console.log(f.next().value); // => 8
105
+ "近いもの" になります。
110
106
 
111
- console.log(f.next().value); // => 9
107
+ 欲しい値(今の場合、1から始まり 10 まで1ずつ増える整数)は `f.next()` が返す値
112
108
 
113
- console.log(f.next().value); // => 10
109
+ としてではなく、 `f.next()` の返すオブジェクト(イテレータリザルトと呼ばれます。)の
114
110
 
111
+ `value` プロパティとして得られます。
112
+
113
+
114
+
115
+ ```javascript
116
+
115
- console.log(f.next().value); // => undefined
117
+ console.log(f.next()); // => { value: 1, done: false }
118
+
119
+ console.log(f.next()); // => { value: 2, done: false }
120
+
121
+ console.log(f.next()); // => { value: 3, done: false }
122
+
123
+ console.log(f.next()); // => { value: 4, done: false }
124
+
125
+ console.log(f.next()); // => { value: 5, done: false }
126
+
127
+ console.log(f.next()); // => { value: 6, done: false }
128
+
129
+ console.log(f.next()); // => { value: 7, done: false }
130
+
131
+ console.log(f.next()); // => { value: 8, done: false }
132
+
133
+ console.log(f.next()); // => { value: 9, done: false }
134
+
135
+ console.log(f.next()); // => { value: 10, done: false }
136
+
137
+ console.log(f.next()); // => { value: undefined, done: true }
116
138
 
117
139
  ```
118
140
 
@@ -140,7 +162,7 @@
140
162
 
141
163
  ---
142
164
 
143
- **補足2**
165
+ **補足 2**
144
166
 
145
167
 
146
168
 

23

テキスト修正

2018/06/10 14:17

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -78,7 +78,7 @@
78
78
 
79
79
  ```javascript
80
80
 
81
- function *increaseGen(start, end) {
81
+ function* increaseGen(start, end) {
82
82
 
83
83
  while ( start <= end )
84
84
 

22

テキスト修正

2018/06/10 13:22

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -148,7 +148,7 @@
148
148
 
149
149
 
150
150
 
151
- 1から10まで、1ずつ増える整数が要素として入っている配列を作って、`let num` に入れることが
151
+ 1から10まで整数が要素として入っている配列を作って、`let num` に入れることが
152
152
 
153
153
  主目的なのであれば、以下のようにすると `for`を使わないで出来ます。
154
154
 

21

テキスト修正

2018/06/10 13:04

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -134,7 +134,7 @@
134
134
 
135
135
  `num` に入ります。
136
136
 
137
- ジェネレータは何かと便利です。
137
+ ジェネレータは何かと便利です。
138
138
 
139
139
 
140
140
 

20

テキスト修正

2018/06/10 13:01

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- 上記のコードにある `f` は `increase` の仮引数 `x` への
35
+ 上記のコードにある `f` は `increase` の仮引数 `x` への
36
36
 
37
37
  参照を保持したクロージャであり、この `f` がご質問のタイトルにある、
38
38
 

19

テキスト修正

2018/06/10 10:38

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -32,7 +32,9 @@
32
32
 
33
33
 
34
34
 
35
+ 上記のコードにある `f` は `increase` の仮引数 `x` への
36
+
35
- 上記のコドに `f` がご質問のタイトルにある、
37
+ 参照を保持したクロジャでり、この `f` がご質問のタイトルにある、
36
38
 
37
39
 
38
40
 
@@ -40,7 +42,7 @@
40
42
 
41
43
 
42
44
 
43
- になっており、実行すると`num` の内容として
45
+ になっています。上記のコードを実行すると`num` の内容として
44
46
 
45
47
  `[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]`
46
48
 

18

テキスト修正

2018/06/10 10:33

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- 上記のようなincreaseGen を作っておくことによって、
119
+ 上記のような `increaseGen` を作っておくことによって、
120
120
 
121
121
 
122
122
 

17

テキスト修正

2018/06/10 10:29

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -146,9 +146,9 @@
146
146
 
147
147
 
148
148
 
149
- 1から10までが要素として入っている配列を作って、`let num` に入れることが主目的なのであれば、
149
+ 1から10まで、1ずつ増える整数が要素として入っている配列を作って、`let num` に入れることが
150
150
 
151
- 以下のようにすると `for`を使わないで出来ます。
151
+ 主目的なのであれば、以下のようにすると `for`を使わないで出来ます。
152
152
 
153
153
 
154
154
 

16

テキスト修正

2018/06/10 10:16

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -32,7 +32,19 @@
32
32
 
33
33
 
34
34
 
35
+ 上記のコードにある `f` がご質問のタイトルにある、
36
+
37
+
38
+
39
+ > 呼び出されるたびに戻り値が一ずつ増える関数
40
+
41
+
42
+
43
+ になっており、実行すると`num` の内容として
44
+
35
- 上記を実行すると、 `[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]` が出力されます。
45
+ `[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]`
46
+
47
+ が出力されます。
36
48
 
37
49
 
38
50
 
@@ -104,7 +116,7 @@
104
116
 
105
117
 
106
118
 
107
- 上記のような、increaseGen を作っておくと、
119
+ 上記のような、increaseGen を作っておくによって
108
120
 
109
121
 
110
122
 

15

テキスト修正

2018/06/10 10:11

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ```javascript
10
10
 
11
- const increase = (startValue) => (() => startValue ++);
11
+ const increase = (x) => (() => x ++);
12
12
 
13
13
 
14
14
 
@@ -16,31 +16,23 @@
16
16
 
17
17
 
18
18
 
19
- console.log(f());
19
+ let num = new Array();
20
20
 
21
- console.log(f());
21
+ for(let i = 0;i < 10;i ++) {
22
22
 
23
- console.log(f());
23
+ num[i] = f();
24
24
 
25
- console.log(f());
25
+ }
26
26
 
27
- console.log(f());
28
27
 
29
- console.log(f());
30
28
 
31
- console.log(f());
29
+ console.log(num);
32
-
33
- console.log(f());
34
-
35
- console.log(f());
36
-
37
- console.log(f());
38
30
 
39
31
  ```
40
32
 
41
33
 
42
34
 
43
- 上記を実行すると、 1, 2, 3 ... 10 が改行されて出力されます。
35
+ 上記を実行すると、 `[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]` が出力されます。
44
36
 
45
37
 
46
38
 
@@ -60,7 +52,7 @@
60
52
 
61
53
  - グローバル変数を使わずに、
62
54
 
63
- - 1回の呼び出しで、出力すべき値が1ずつ増えていき、
55
+ - 1回の呼び出しで、出力すべき値が1ずつ増えていき、
64
56
 
65
57
  - 次の呼び出しまで、現在の値を保持する。
66
58
 

14

テキスト修正

2018/06/10 09:54

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -118,13 +118,15 @@
118
118
 
119
119
  ```javascript
120
120
 
121
- [...increaseGen(1,10)]
121
+ let num = [...increaseGen(1,10)];
122
122
 
123
123
  ```
124
124
 
125
125
 
126
126
 
127
- とするだけで、1から10までを要素に含む配列 `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]` が得られます。
127
+ とするだけで、1から10までを要素に含む配列 `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]` が
128
+
129
+ `num` に入ります。
128
130
 
129
131
  ジェネレーターは何かと便利です。
130
132
 
@@ -140,7 +142,7 @@
140
142
 
141
143
 
142
144
 
143
- 1から10までが要素として入っている配列を作って、`let num` に入れることが目的なのであれば、
145
+ 1から10までが要素として入っている配列を作って、`let num` に入れることが目的なのであれば、
144
146
 
145
147
  以下のようにすると `for`文を使わないで出来ます。
146
148
 

13

テキスト修正

2018/06/10 09:47

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -112,19 +112,19 @@
112
112
 
113
113
 
114
114
 
115
- 上記のような、increaseGen を作っておくと、たとえば
115
+ 上記のような、increaseGen を作っておくと、
116
116
 
117
117
 
118
118
 
119
119
  ```javascript
120
120
 
121
- [...increaseGen(101,105)]
121
+ [...increaseGen(1,10)]
122
122
 
123
123
  ```
124
124
 
125
125
 
126
126
 
127
- とするだけで、101から105までを要素に含む配列 `[101, 102, 103, 104, 105]` が得られます。
127
+ とするだけで、1から10までを要素に含む配列 `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]` が得られます。
128
128
 
129
129
  ジェネレーターは何かと便利です。
130
130
 

12

テキスト修正

2018/06/10 09:45

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -148,7 +148,7 @@
148
148
 
149
149
  ```javascript
150
150
 
151
- let num = Array(10).fill(0).map((e,i) => i+1);
151
+ let num = Array(10).fill(0).map((_ ,i) => i+1);
152
152
 
153
153
 
154
154
 

11

テキスト修正

2018/06/10 09:43

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -130,4 +130,34 @@
130
130
 
131
131
 
132
132
 
133
+ ---
134
+
135
+ **補足2**
136
+
137
+
138
+
139
+ いろいろ脇道にそれてすみません。
140
+
141
+
142
+
143
+ 1から10までが要素として入っている配列を作って、`let num` に入れることが目的なのであれば、
144
+
145
+ 以下のようにすると `for`文を使わないで出来ます。
146
+
147
+
148
+
149
+ ```javascript
150
+
151
+ let num = Array(10).fill(0).map((e,i) => i+1);
152
+
153
+
154
+
155
+ console.log(num); // => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
156
+
157
+ ```
158
+
159
+
160
+
161
+
162
+
133
163
  以上参考になれば幸いです。

10

テキスト修正

2018/06/10 09:39

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -1,8 +1,6 @@
1
1
  こんにちは。
2
2
 
3
3
 
4
-
5
- カウンタとしてグルーバル変数を使いたくないのであれば、
6
4
 
7
5
  [クロージャ](https://developer.mozilla.org/ja/docs/Web/JavaScript/Closures)を使って、以下のように書けます。
8
6
 
@@ -10,11 +8,7 @@
10
8
 
11
9
  ```javascript
12
10
 
13
- const increase = (startValue) => (
11
+ const increase = (startValue) => (() => startValue ++);
14
-
15
- () => { console.log(startValue ++); }
16
-
17
- );
18
12
 
19
13
 
20
14
 
@@ -22,25 +16,25 @@
22
16
 
23
17
 
24
18
 
25
- f();
19
+ console.log(f());
26
20
 
27
- f();
21
+ console.log(f());
28
22
 
29
- f();
23
+ console.log(f());
30
24
 
31
- f();
25
+ console.log(f());
32
26
 
33
- f();
27
+ console.log(f());
34
28
 
35
- f();
29
+ console.log(f());
36
30
 
37
- f();
31
+ console.log(f());
38
32
 
39
- f();
33
+ console.log(f());
40
34
 
41
- f();
35
+ console.log(f());
42
36
 
43
- f();
37
+ console.log(f());
44
38
 
45
39
  ```
46
40
 
@@ -130,7 +124,7 @@
130
124
 
131
125
 
132
126
 
133
- とする、101から105までを要素に含む配列 `[101, 102, 103, 104, 105]` が得られます。
127
+ とするだけで、101から105までを要素に含む配列 `[101, 102, 103, 104, 105]` が得られます。
134
128
 
135
129
  ジェネレーターは何かと便利です。
136
130
 

9

テキスト修正

2018/06/10 09:32

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- クロジャーを使って、こんなのはいかがしょう?
5
+ カウンタとしてグルバル変数を使いたくのであれば、
6
+
7
+ [クロージャ](https://developer.mozilla.org/ja/docs/Web/JavaScript/Closures)を使って、以下のように書けます。
6
8
 
7
9
 
8
10
 
@@ -70,7 +72,7 @@
70
72
 
71
73
 
72
74
 
73
- が要件だとすると、ジェネレータを使って以下のような実現方法もあるかなと思いました。
75
+ が要件だとすると、[ジェネレータ](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Generator)を使って以下のような実現方法もあるかなと思いました。
74
76
 
75
77
 
76
78
 

8

テキスト修正

2018/06/10 09:13

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
 
64
64
 
65
- - 現在の値をグローバルに持たないようにし
65
+ - グローバル変数を使わずに、
66
66
 
67
67
  - 1回の呼び出しで、出力すべき値が、1ずつ増えていき、
68
68
 

7

テキスト修正

2018/06/10 08:38

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
 
64
64
 
65
- - 開始数(1)と最後の数(10)をグローバルに持たないようにし、
65
+ - 現在をグローバルに持たないようにし、
66
66
 
67
67
  - 1回の呼び出しで、出力すべき値が、1ずつ増えていき、
68
68
 
@@ -70,7 +70,7 @@
70
70
 
71
71
 
72
72
 
73
- が要件だとすると、Generator を使って以下のような実現方法もあるかなと思いました。
73
+ が要件だとすると、ジェネレーターを使って以下のような実現方法もあるかなと思いました。
74
74
 
75
75
 
76
76
 
@@ -130,7 +130,7 @@
130
130
 
131
131
  とすると、101から105までを要素に含む配列 `[101, 102, 103, 104, 105]` が得られます。
132
132
 
133
- Generator は何かと便利です。
133
+ ジェネレーターは何かと便利です。
134
134
 
135
135
 
136
136
 

6

コード修正

2018/06/10 07:47

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -10,11 +10,9 @@
10
10
 
11
11
  const increase = (startValue) => (
12
12
 
13
- () => {
13
+ () => { console.log(startValue ++); }
14
14
 
15
- console.log(startValue ++);
16
-
17
- });
15
+ );
18
16
 
19
17
 
20
18
 

5

テキスト修正

2018/06/10 04:45

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -60,7 +60,7 @@
60
60
 
61
61
 
62
62
 
63
- 以下の3点が要件
63
+ 以下の3点
64
64
 
65
65
 
66
66
 
@@ -72,7 +72,7 @@
72
72
 
73
73
 
74
74
 
75
- だとすると、Generator を使って以下のような実現方法もあるかなと思いました。
75
+ が要件だとすると、Generator を使って以下のような実現方法もあるかなと思いました。
76
76
 
77
77
 
78
78
 

4

テキスト修正

2018/06/10 04:31

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -60,19 +60,19 @@
60
60
 
61
61
 
62
62
 
63
- 以下の要件
63
+ 以下の3点が要件
64
64
 
65
65
 
66
66
 
67
- - 開始の数と最後の数をグローバルに持たないようにし、
67
+ - 開始の数(1)と最後の数(10)をグローバルに持たないようにし、
68
68
 
69
69
  - 1回の呼び出しで、出力すべき値が、1ずつ増えていき、
70
70
 
71
- - 次の呼び出しまで、現在の値を保持する
71
+ - 次の呼び出しまで、現在の値を保持する
72
72
 
73
73
 
74
74
 
75
- だと、Generator を使って以下のような実現方法もあるかなと思いました。
75
+ だとすると、Generator を使って以下のような実現方法もあるかなと思いました。
76
76
 
77
77
 
78
78
 
@@ -118,19 +118,19 @@
118
118
 
119
119
 
120
120
 
121
- 上記のような、increaseGen を作っておくと、
121
+ 上記のような、increaseGen を作っておくと、たとえば
122
122
 
123
123
 
124
124
 
125
125
  ```javascript
126
126
 
127
- [...increaseGen(1,5)]
127
+ [...increaseGen(101,105)]
128
128
 
129
129
  ```
130
130
 
131
131
 
132
132
 
133
- 、1から5までを要素に含む配列 `[1, 2, 3, 4, 5]` が得られます。
133
+ とすると、101から105までを要素に含む配列 `[101, 102, 103, 104, 105]` が得られます。
134
134
 
135
135
  Generator は何かと便利です。
136
136
 

3

テキスト修正

2018/06/10 04:27

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -130,7 +130,9 @@
130
130
 
131
131
 
132
132
 
133
- で、 `[1, 2, 3, 4, 5]` が得られます。Generator は何かと便利です。
133
+ で、1から5までを要素に含む配列 `[1, 2, 3, 4, 5]` が得られます。
134
+
135
+ Generator は何かと便利です。
134
136
 
135
137
 
136
138
 

2

テキスト修正

2018/06/10 04:24

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -112,6 +112,8 @@
112
112
 
113
113
  console.log(f.next().value); // => 10
114
114
 
115
+ console.log(f.next().value); // => undefined
116
+
115
117
  ```
116
118
 
117
119
 

1

テキスト修正

2018/06/10 04:20

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -8,15 +8,13 @@
8
8
 
9
9
  ```javascript
10
10
 
11
- const increase = (startValue) => {
11
+ const increase = (startValue) => (
12
12
 
13
- return () => {
13
+ () => {
14
14
 
15
15
  console.log(startValue ++);
16
16
 
17
- }
18
-
19
- };
17
+ });
20
18
 
21
19
 
22
20
 
@@ -49,3 +47,89 @@
49
47
 
50
48
 
51
49
  上記を実行すると、 1, 2, 3 ... 10 が改行されて出力されます。
50
+
51
+
52
+
53
+ ---
54
+
55
+ **補足**
56
+
57
+
58
+
59
+ 以下、ご質問の本題からやや外れるかもしれませんが、補足します。
60
+
61
+
62
+
63
+ 以下の要件
64
+
65
+
66
+
67
+ - 開始の数と最後の数をグローバルに持たないようにし、
68
+
69
+ - 1回の呼び出しで、出力すべき値が、1ずつ増えていき、
70
+
71
+ - 次の呼び出しまで、現在の値を保持する
72
+
73
+
74
+
75
+ だと、Generator を使って以下のような実現方法もあるかなと思いました。
76
+
77
+
78
+
79
+ ```javascript
80
+
81
+ function *increaseGen(start, end) {
82
+
83
+ while ( start <= end )
84
+
85
+ yield start ++;
86
+
87
+ }
88
+
89
+
90
+
91
+ const f = increaseGen(1, 10);
92
+
93
+
94
+
95
+ console.log(f.next().value); // => 1
96
+
97
+ console.log(f.next().value); // => 2
98
+
99
+ console.log(f.next().value); // => 3
100
+
101
+ console.log(f.next().value); // => 4
102
+
103
+ console.log(f.next().value); // => 5
104
+
105
+ console.log(f.next().value); // => 6
106
+
107
+ console.log(f.next().value); // => 7
108
+
109
+ console.log(f.next().value); // => 8
110
+
111
+ console.log(f.next().value); // => 9
112
+
113
+ console.log(f.next().value); // => 10
114
+
115
+ ```
116
+
117
+
118
+
119
+ 上記のような、increaseGen を作っておくと、
120
+
121
+
122
+
123
+ ```javascript
124
+
125
+ [...increaseGen(1,5)]
126
+
127
+ ```
128
+
129
+
130
+
131
+ で、 `[1, 2, 3, 4, 5]` が得られます。Generator は何かと便利です。
132
+
133
+
134
+
135
+ 以上参考になれば幸いです。