Iterators
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser.js"></script>
<script type="text/babel">
var myArr = new String("heyyou");
myArr[Symbol.iterator] = function() {
var stateVar = 0;
return {
next() {
++stateVar;
return {
value: stateVar,
done: false
};
}
};
}
var iter = myArr[Symbol.iterator]();
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());
var runningSum = {
[Symbol.iterator]() {
var idx = 0, sum = 0;
return {
next() {
sum += idx;
++idx;
return {
done: sum > 100,
value: sum
};
}
};
}
};
for (let s of runningSum) {
console.log(s);
}
</script>