제너레이터와 이터레이터
1211 단어 JavaScriptJavaScript
제너레이터와 이터레이터를 이용해서 홀수만 출력해보자.
function* infinity(){
let i =0;
while(true){
yield i++
}
}
먼저 수를 무한하게 만들수 있는 infinity를 만들었다.
const infi = infinity();
console.log(infi.next());
console.log(infi.next());
console.log(infi.next());
console.log(infi.next());
이런식으로 찍어보면
{ value: 0, done: false }
{ value: 1, done: false }
{ value: 2, done: false }
{ value: 3, done: false }
이렇게 값들이 계속 증가하면서 찍힌다.
이제 이 infinity를 이용해서 특정 범위의 수를 찍어보자
function* limit(a){
for(const i of infinity()){
if(i === a) return;
yield i
}
}
for...of 를 이용해서
for(const i of limit(10)){
console.log(i)
}
를 하면 10보다 작은 수들이 찍힌다. 다시 이걸 이용해서 홀수만 찍어보려면
function* odds(a){
for(const i of limit(a)){
if(i%2) yield i;
}
}
for(const i of odds(10)) console.log(i)
이제 이러면 10보다 작은 홀수를 출력할 수 있다.
Author And Source
이 문제에 관하여(제너레이터와 이터레이터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dev_off/제너레이터와-이터레이터저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)