bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/JavaScript/Objects, Classes, and Advanced Patterns
JavaScript•Objects, Classes, and Advanced Patterns

JavaScript Iterables

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind JavaScript Iterables?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

___ (variable of iterable) {
3Order

Put the learning moves in the order that makes the concept easiest to apply.

Iterating Over an Array
Iterating Over a String
An Iterable is an Iterable Object

An Iterable is an Iterable Object

Iterable can be iterated over with for...of loops

The for...of Loop

The JavaScript for..of statement loops through the elements of an iterable object.

Syntax

for (variable of iterable) {
 //
code block to be executed
}

Iterating

Iterating means looping over a sequence of elements.

Here are some examples

  • Iterating over a String
  • Iterating over an Array
  • Iterating over a Set
  • Iterating over a Map

Iterating Over a String

You can use a for...of loop to iterate over the elements of a string:

Example

const name = "ExampleSite";
for (const x of name) {
  // code block to be executed
}

Iterating Over an Array

You can use a for...of loop to iterate over the elements of an Array:

Example 1

const letters = ["a","b","c"];
for (const x of letters) {
  // code block to be executed
}

Example 2

const numbers = [2,4,6,8];
for (const x of numbers) {
  // code block to be executed
}

Iterating Over a Set

You can use a for...of loop to iterate over the elements of a Set:

Example

const letters = new Set(["a","b","c"]);
for (const x of letters) {
  // code block to be executed
}

Iterating Over a Map

You can use a for...of loop to iterate over the elements of a Map:

Example

const fruits = new Map([ ["apples", 500], ["bananas", 300], ["oranges", 200]
]);
for (const x of fruits) {
  // code block to be executed
}

JavaScript Iterators

The iterator protocol defines how to produce a sequence of values from an object.

An object becomes an iterator when it implements a next() method.

  • value (the next value)
  • done (true or false)
valueThe value returned by the iterator (Can be omitted if done is true)
donetrue if the iterator has completed false if the iterator has produced a new value

Technically, iterables must implement the Symbol.iterator method.

In JavaScript the following are iterables

  • Strings
  • Arrays
  • Typed Arrays
  • Sets
  • Maps

Because their prototype objects have a Symbol.iterator method:

This iterable returns never ending number: 10,20,30,40,.... when the next() method is called:

Example

// Home Made Iterable function myNumbers() {
let n = 0;
return {
  next: function() {
    n += 10;
    return {value:n, done:false};
  }
};
}
// Run the Iterable
const n = myNumbers();
n.next(); // Returns 10
n.next(); // Returns 20
n.next(); // Returns 30

A JavaScript iterable is an object that has a Symbol.iterator .

The Symbol.iterator is a function that returns a next() function.

Example

// Create an Object myNumbers = {}; // Make it Iterable myNumbers[Symbol.iterator] = function() {
let n = 0;
done = false;
return {
  next() {
    n += 10;
    if (n == 100) {done = true}
    return {value:n, done:done};
  }
};
}

Example

let iterator = myNumbers[Symbol.iterator]();
while (true) {
  const result = iterator.next();
  if (result.done) break;
  // Any Code Here
}

Iterators provide a controlled way to work with data sequences , enabling custom iteration logic for various data structures.

In the next chapter you will learn about the new Iterator Helper Functions introduced in ECMAScript 2025.

Previous

JavaScript Temporal Intro

Next

JavaScript Function Definitions