Lessons: 65Length: 7.1 hours

Next lesson playing in 5 seconds

Cancel
  • Overview
  • Transcript

4.6 Iterators

Let’s learn about the iteration protocol and see how to iterate some of the data structures that we looked at earlier.

Syntax

  • next

1.Introduction
2 lessons, 07:42

1.1
Introduction
02:12

1.2
Setup
05:30

2.Language Fundamentals
8 lessons, 1:00:53

2.1
Variables
06:33

2.2
Data Types
11:28

2.3
Arithmetic, Assignment, and Comparison Operators
10:24

2.4
Unary, Logical, Comma, and Spread Operators
09:02

2.5
Operator Precedence
03:50

2.6
Reserved Words
04:17

2.7
Strict Mode
04:34

2.8
Functions
10:45

3.Data Structures
5 lessons, 22:52

3.1
Arrays
04:29

3.2
Objects
04:30

3.3
Sets
04:57

3.4
Maps
04:21

3.5
Weak Maps and Weak Sets
04:35

4.Controlling Program Execution
7 lessons, 37:06

4.1
Conditionals
07:49

4.2
Switch Statements
04:41

4.3
The For Loop
06:39

4.4
The `for .. in` Loop
05:17

4.5
The `for .. of` Loop
04:02

4.6
Iterators
05:03

4.7
While Loops
03:35

5.Using JavaScript
13 lessons, 1:44:36

5.1
Working With Strings
09:32

5.2
Template Literals
05:46

5.3
Working With Numbers
06:57

5.4
Working With Arrays
12:53

5.5
Iterating and Transforming Arrays
07:33

5.6
Working With the Object Type
13:55

5.7
Object Literal Extensions
06:45

5.8
Working With Object Instances
06:45

5.9
Getters and Setters
05:00

5.10
Custom Objects
11:28

5.11
The `Math` API
04:54

5.12
Working With Dates and Times
08:10

5.13
The `Array` Constructor
04:58

6.Functions
8 lessons, 56:07

6.1
The `this` Object
06:15

6.2
Working With Functions
10:11

6.3
Scope
07:37

6.4
Arrow Functions
06:59

6.5
Generator Functions
08:13

6.6
Closures
05:00

6.7
Prototypes
06:26

6.8
Default and Rest Parameters
05:26

7.Miscellaneous
6 lessons, 52:39

7.1
Destructuring Assignments
08:09

7.2
AJAX
08:30

7.3
Regular Expressions
10:51

7.4
More About Regular Expressions
08:38

7.5
Classes
06:48

7.6
ES Modules
09:43

8.Working With the DOM
6 lessons, 37:39

8.1
Selecting HTML Elements
05:02

8.2
Manipulating HTML Elements
07:40

8.3
DOM Traversal
05:25

8.4
Adding and Removing Elements
04:45

8.5
Creating Elements and Other Nodes
04:39

8.6
DOM Events
10:08

9.Web APIs
4 lessons, 17:41

9.1
The Selector API
03:03

9.2
Geolocation
05:29

9.3
Web Storage
05:24

9.4
Web Workers
03:45

10.Asynchronous JavaScript
5 lessons, 26:23

10.1
Promises
09:52

10.2
Promise Chaining
05:11

10.3
The async Keyword
03:21

10.4
The await Keyword
04:04

10.5
More About async and await
03:55

11.Conclusion
1 lesson, 00:43

11.1
Conclusion
00:43


4.6 Iterators

Hi folks. In this lesson, we're going to look at iterables and iterators. We learned in the last lesson that the for overloop can be used to iterate any iterable. And we've across the term several times so far throughout the course. An array is a type of iterable. So is a string as well as a number of other objects like the special arguments objects inside functions and maps and sets. This is generally all we'll need to know about iterables. Although it is possible to override the default iterable behavior or iterable objects, and it's even possible to make uniterable objects. Like objects literals integral, but this is quite advanced and pretty uncommon at this point. So we won't worry about this today. An iterator is a special object that provides access to a collection of items one at a time in which keeps track of which items have been accessed. All iterators contain a next method. When the next method is invoked, an object is returned with two keys, value and done. Value will be whatever value the iterator returned from the collection. While done is a Boolean that equals true only when the iterator has finished iterating the collection. So let's take a look at some iterators. We looked at the set object in the last section and saw a few of its methods, like add and delete. Another of these sets methods is the entries method. And this method returns an iteration that we can use to iterate the set. Let's take a look. In this case, the set items variable now contains an iterator, because the entries method of the set returns an iterator. This iterator has a next method so we can invoke this method in other to pull out the first item from the set. Let's take a look in a browser now, and see what we get. So the value is an array and the done property equals false which means there are more items in the set. Now the reason why the set returns an array as the first item is so that sets and maps work in the same way. It was decided that iterators for both sets, and maps, should be aligned. In the case of a map, the array contains two items, both the key and the value. But with sets, there are no keys and so even though the value contains an array when used with a set like this, both of the items in the array are same and they both equal the value. So the done property is equal to false, and that means that we can still call the next method. So if we wanted, we could go back and add another log statement which called the next method once again. We can keep invoking the next method until done is equal to true. So the last time after we've already pulled out all three values from this set, the object that the next method returns contains undefined as the value, and this time the done property is set to true. So maps and sets both have methods that return iterators. Iterators are very similar to a loop except that, instead of the loop executing a set number of times depending on how many values there are in the thing that we're using the loop with. An iterator is like a manual loop, and it doesn't get executed automatically. We have control over when it gets executed, and that execution is controlled by us invoking the next method. There are many more methods in JavaScript. And there are many more objects that can return iterators, so you will come across them fairly regularly. So in this lesson we looked at iterators. An iterator is any object that exposes a next method. When this next method is invoked, an object is returned which contains the current value in the collection being iterated. And a boolean indicating whether there are more items in the collection. Iterators are just like loops, except that we control when each iteration of the loop takes place. In the next lesson, we'll look at one more type of loop available in JavaScript, the While loop, thanks for watching.

Back to the top