Thanks to pointers from @xdazz and @Juan Mendes, I was able to work out the enumerator function prototype:
Array.prototype extension:
Array.prototype.getEnumerator = Array.prototype.getEnumerator ||
function() {
var items = this;
var counter = -1;
var enumerator = {
moveNext: function() {
counter++;
return (counter < items.length);
},
getCurrent: function() {
return items[counter];
}
}
return enumerator;
};
Usage:
var list = ["A", "B", "C", "D", "E"];
var enumerator = list.getEnumerator(); // makes any array enumerable
while(enumerator.moveNext()) {
var currentItem = enumerator.getCurrent();
alert(currentItem);
}