-
Notifications
You must be signed in to change notification settings - Fork 0
파트3. 제너레이터와 이터레이터
Yongku cho edited this page Dec 16, 2018
·
2 revisions
- 제너레이터 : 이터레이터이자 이터러블을 생성하는 함수
function *gen() {
yield 1;
yield 2;
yield 3;
}
const iter = gen();
console.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
return 값을 사용하면 마지막값으로 사용가능합니다.
function *gen() {
yield 1;
yield 2;
yield 3;
return 4;
}
const iter = gen();
console.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: 4, done: true}
function *odds(limit) {
for(let i = 1; i <= limit; i += 2) {
yield i;
}
}
console.log(...odds(9))
console.log([...odds(7), ...odds(5)])
const [head, ...tail] = odds(7);
console.log(head, tail);