# Iterator
# What is it
- Iterable data structures has a
[Symbol.iterator]
method - Return a object after
[Symbol.iterator]
executed iterator
object has anext
method- Return a object that has 2 properties:
value
anddone
, Whennext
has been executed(a iterator used)
# DIY a iterator
function myIterator(items) { var i = 0; return { next: function() { var done = i >= items.length; var value = !done ? items[i++] : undefined; return { done: done, value: value }; } }; } var iterator1 = new myIterator([1, 2, 3]); console.log(iterator1.next()); console.log(iterator1.next()); console.log(iterator1.next()); console.log(iterator1.next()); // {done: false, value: 1} // {done: false, value: 2} // {done: false, value: 3} // {done: true, value: undefined}
Copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24