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