특정 객체의 요소를 어떤 방식과 순서로 순회할 지 정의하며 순회가 끝났는지를 나타내는 불리언 값인 done, 현재 원소 값인 value를 담은 객체를 반환하는 메서드를 이터레이터(반복자)라고 한다.
const Iterator = (arr)=>{
let i = 0
return{
next:()=>{
return i<arr.length?{value:arr[i++],done:false}:{done:true}
}
}
}
const v = Iterator([1,2,3])
console.log(v.next())
console.log(v.next())
console.log(v.next())
console.log(v.next())
결과
{ value: 1, done: false }
{ value: 2, done: false }
{ value: 3, done: false }
{ done: true }
'JS > ECMAscript' 카테고리의 다른 글
프로미스 promise (0) | 2018.12.31 |
---|---|
이터러블 프로토콜 iterable protocol (0) | 2018.12.30 |
for of (0) | 2018.12.30 |
forEach (0) | 2018.12.29 |
멀티라인 문자열 (0) | 2018.12.29 |