I wanted to leave a clean example (no var and let mixing, either):
function dataSnapshot(aCollection) {
let snapshot = aCollection.clone();
let i = 0;
return {
next: function () {
if (i == snapshot.length)
throw StopIteration;
return snapshot[i++];
}
};
}
(I usually prefer post-increment for loop-ish constructs. Old C hacker
here.)
Again, anyone trying to avoid the .clone() call would be disappointed.
Anyone trying to avoid the extra level of function nesting would be
disappointed. There is irreducible complexity here.
But the generator form is still winning:
function dataSnapshot(aCollection) {
let snapshot = aCollection.clone();
return function*() {
for (let i = 0; i < snapshot.length; i++){
yield snapshot[i];
}
}();
}
IMHO.
/be
Brendan Eich wrote:
Brendan Eich wrote:
function dataSnapshot(aCollection) {
var snapshot = aCollection.clone();
let i = 0;
let i = -1;
rather,
return {
next: function () {
if (++i == snapshot.length)
throw StopIteration;
return snapshot[i];
}
};
}
or this might run a while!
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss