手写迭代器

文章目录

手写迭代器

function creatIterator(items){
    
    
    let i=0;
    return{
    
    
        next:function (){
    
    
            let done=(i>items.length)
            let value=!done?items[i++]:undefined
            return{
    
    
                value,
                done
            }
        }
    }
}
let iterator=createIterator([1,2,3,4,5])
console.log(iterator.next())
console.log(iterator.next())
console.log(iterator.next())
console.log(iterator.next())
console.log(iterator.next())
console.log(iterator.next())
// { done: false, value: 1 }
// { done: false, value: 2 }
// { done: false, value: 3 }
// { done: false, value: 4 }
// { done: false, value: 5 }
// { done: true, value: undefined }