How to use Iterator Protocol with Custom Class In Javascript

The iterator protocol is implemented using a custom class, which is used to iterate over the array and skipping empty values by controlling the next method.

Example: The below code is practical implementation of the above-discussed approach to create iterator.

Javascript




class SkipEmptyValuesIterator {
    constructor(array) {
        this.array = array;
    }
 
    [Symbol.iterator]() {
        let currentIndex = 0;
        const arrayLength = this.array.length;
 
        return {
            next: () => {
                while (currentIndex < arrayLength) {
                    const currentValue = this.array[currentIndex++];
                    if (currentValue !== '') {
                        return { value: currentValue, done: false };
                    }
                }
                return { done: true };
            }
        };
    }
}
 
const myArray = ['GFG', '', 3, '', 'JavaScript'];
const iterator = new SkipEmptyValuesIterator(myArray);
 
for (let value of iterator) {
    console.log(value);
}


Output

GFG
3
JavaScript

How to Create Custom Iterator that Skips Empty Value in JavaScript ?

Iterators are important concepts in the world of programming. They allow developers to traverse and manipulate collections of data more efficiently and flexibly. JavaScript, being a high-level programming language, also supports iterators. You can even create a custom iterator that skips the empty values using the below methods:

Table of Content

  • Using Generator Function
  • Using Array.prototype.filter and Symbol.iterator
  • Using Iterator Protocol with Custom Class
  • Using Array.prototype.entries and Symbol.iterator
  • Using Array.prototype.reduce and Symbol.iterator

Similar Reads

Using Generator Function

The generator function can be used to yield non-empty values which can be further used to create a custom iterator that skips empty values....

Using Array.prototype.filter and Symbol.iterator

...

Using Iterator Protocol with Custom Class

A custom iterator class that filters out empty values using Array.prototype.filter and implements the Symbol.iterator method....

Using Array.prototype.entries and Symbol.iterator

...

Using Array.prototype.reduce and Symbol.iterator

The iterator protocol is implemented using a custom class, which is used to iterate over the array and skipping empty values by controlling the next method....