Skip to content

Instantly share code, notes, and snippets.

@alexspark
Last active May 20, 2017 19:33
Show Gist options
  • Save alexspark/162158098b68fca0dcdd429c9b399edd to your computer and use it in GitHub Desktop.
Save alexspark/162158098b68fca0dcdd429c9b399edd to your computer and use it in GitHub Desktop.
ES6 Iterators and Generators
let fib = {
[Symbol.iterator]() {
let pre = 0, cur = 1;
return {
next() {
[pre, cur] = [cur, pre + cur];
return { done: false, value: cur }
}
}
}
}
let fibGen = {
[Symbol.iterator]: function*() {
let pre = 0, cur = 1;
for (;;) {
[pre, cur] = [cur, pre + cur];
yield cur;
}
}
}
//for (var n of fibGen) {
// if (n > 10000) { break; }
// console.log(n);
//}
for (var x of fibGen) {
if (x > 1000) { break; }
console.log(x)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment