Skip to content

JavaScript Iterables and Iterators

Introduction to JavaScript Iterables

JavaScript iterables are objects that implement a specific protocol, allowing them to be consumed by iteration constructs like for...of. This guide covers the core concepts, built-in iterables, and practical techniques for working with collections.

What are Iterables in JavaScript?

At its core, an iterable is an object that implements the Symbol.iterator method, enabling sequential access to its elements. Several built-in types in JavaScript are iterable, including Array, String, Map, Set, and more. It is important to distinguish between an iterable (the object being traversed) and an iterator (the object returned by Symbol.iterator that actually performs the traversal). These iterables are integral to various operations, such as looping and data manipulation.

INFO

For a detailed exploration of JavaScript Map and Set objects, please refer to our comprehensive guide on JavaScript Map and Set.

Example of an Iterable: Array

Let's look at a basic example of an iterable in JavaScript:


Output appears here after Run.

This code snippet demonstrates iterating over an array of fruits, a common iterable. The for...of loop automatically calls the iterable's Symbol.iterator method and consumes the resulting iterator until done is true.

The Symbol.iterator Method

The cornerstone of an iterable is its Symbol.iterator method. This special method returns an iterator, which provides a mechanism to traverse through the elements of the iterable.

Example: Custom Iterable Object


Output appears here after Run.

In this example, we've created a custom iterable object with its own Symbol.iterator method. Note: The method shorthand syntax ensures this correctly refers to the myIterable object. (Using an arrow function here would capture this lexically and break the pattern.)

Advanced Iteration Techniques

As your JavaScript journey progresses, you'll encounter scenarios requiring more sophisticated iteration techniques.

Using Array.from()

The Array.from() method is a powerful tool that creates a new array instance from an iterable object.

Example: Converting a Set into an Array


Output appears here after Run.

Spread Syntax with Iterables

Spread syntax (...) allows iterables to be expanded where arguments or elements are expected.

Example: Merging Arrays


Output appears here after Run.

Conclusion

Mastering JavaScript iterables opens up a myriad of possibilities in data handling and manipulation. By understanding and utilizing the concepts and techniques outlined in this guide, you'll be well-equipped to tackle a wide range of programming challenges. As you continue to explore the depths of JavaScript, remember that iterables are a key component in writing efficient, elegant, and effective code.

Practice

Which of the following statements about JavaScript iterables are correct?

Dual-run preview — compare with live Symfony routes.