Day6_VSCODE_JavaScript_이터레이터+이터러블

2023. 4. 12. 20:01Javascript

🟢이터레이터(Iterator)

반복 처리가 가능한 객체
내부적으로 next() 메소드를 가지고 있다.
next()는 IteratorResult 객체 value와 done이라는 프로퍼티를 가진 객체를 반환해야 함

 

🟢이터러블(Iterable)
- 반복이 가능한 객체
- Symbol.Iterator 메소드가 있어야한다. 
- Symbol.Iterator는 이터레이터 객체를 반환해야함
- String, Array, Map, Set .. 등 객체가 예시
- for 문법으로 반복이 가능하다.

 

예시

<script>
        const arr = [1,2,3,4,5];


//arr의 요소가 iterator에 들어감
        const iterator =arr.values(); 
        
//반복문으로 출력 (결과: 1,false / 2,false ..... 5,true)
        while(true){
            const item = iterator.next();
            
            if(item.done) break;   
            // 이터러블은 done값을 반환하는데 이것이 true면 요소가 없다는 뜻임으로 종료
            console.log(item.value)
        }

        for(let item of arr){
            console.log(item)
        }
    </script>
728x90