function makeIterator(arr){
let nextIndex = 0;
//返回一个迭代器对象
return{
next: ()=>{
//next()方法返回的结果对象
if(nextIndex<arr.length){
// ++nextIndex
return{
value:arr[nextIndex++],
done:false
}
}else{
return{
done:true
}
}
}
}
}
const it = makeIterator(['吃饭','睡觉','dayouxi'])
console.log(it.next().value)
console.log(it.next().value)
用生成器来简化上面迭代器的代码
function *makeIterator(arr){
for(let i = 0;i<arr.length;i++){
yield arr[i]
}
}
const gen = makeIterator(['chifan','shuijiao','fa'])
console.log(gen.next().value)