iterator in JavaScript

by Biswa R

JavaScript

var a = [];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;


function iterator(array) {
    var currentIndex = -1;
    
    return {
       next: function() {
       			currentIndex = currentIndex+1;
           return currentIndex < array.length ?
               {value: array[currentIndex], done: false } :
               {value: "index out of range", done: true};
       },
       previous: function() {
       			currentIndex = currentIndex-1;
       			return currentIndex >= 0 ?
               {value: array[currentIndex], done: false } :
               {value: "index out of range", done: true};
       }
    };
}


var iterable = iterator(a);

var current = iterable.next();
while (!current.done) {
  console.log(current.value);
  current = iterable.next();
}
var res = iterator(a);
console.log(res);
console.log(res.next().value);
console.log(res.next().value);
console.log(res.next().value);
console.log(res.previous().value);
console.log(res.previous().value);
console.log(res.previous().value);