> For the complete documentation index, see [llms.txt](https://dev-lambda.gitbook.io/tech-interview-cs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev-lambda.gitbook.io/tech-interview-cs/design-patern/iteratorpattern.md).

# 이터레이터 패턴

## 이터레이터 패턴이란

* 이터레이터를 사용하여 컬랙션의 요소들에 접근하는 디자인 패턴
* 순회할 수 있는 여러가지 자료형의 구조와는 상관없이 이터레이터라는 하나의 인터페이스로 순회 가능

{% embed url="<https://github.com/wnghdcjfe/csnote/blob/main/ch1/11.js>" %}

* 다른 자료 구조인 set과 map에 똑같은 for a of b라는 이터레이터 프로토콜을 통해 순회
  * 이터레이터 프로토콜: 이터러블한 객체들을 순회할 때 쓰이는 규칙
  * 이터러블한 객체: 반복가능한 객체로 배열을 일반화한 객체
