Curriculum
Course: JavaScript Basic
Login

Curriculum

JavaScript Basic

JSHome

0/216
Text lesson

Home Made Iterable

This iterable produces an infinite sequence: 10, 20, 30, 40, and so on, each time next() is called.

Example

// Home Made Iterable
function myNumbers() {
  let n = 0;
  return {
    next: function() {
      n += 10;
      return {value:n, done:false};
    }
  };
}

// Create Iterable
const n = myNumbers();
n.next(); // Returns 10
n.next(); // Returns 20
n.next(); // Returns 30

A JavaScript iterable is an object with a Symbol.iterator method, which returns a next() function. You can iterate over an iterable using for (const x of iterable) { }.

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};
    }
  };
}

Now you can use for…of.

for (const num of myNumbers) {
  // Any Code Here
}

The Symbol.iterator method is called automatically by for…of, but we can also invoke it “manually”:

Example

let iterator = myNumbers[Symbol.iterator]();

while (true) {
  const result = iterator.next();
  if (result.donebreak;
  // Any Code Here
}