JSFiddle - React, Tailwind, and code Playground
by brigand
JavaScript
class Enumerate {
constructor(inner) {
this.count = 0;
this.inner = inner;
}
[Symbol.iterator]() {
return this;
}
next() {
const desc = this.inner.next();
if (desc.done) {
return desc;
}
return {
value: [this.count++, desc.value]
};
}
}
function enumerate(iterable) {
return new Enumerate(iterable[Symbol.iterator] ? iterable[Symbol.iterator]() : iterable);
}
for (const [i, x] of enumerate('abc')) {
console.log({ i, x });
}