用数组模拟,将数组中的值一个一个拿出来,使用iterator迭代器循环机制
// 声明一个函数
function iter(arr){
// 声明一个变量用来指代数组中的索引
let idx = 0 ;
// 返回next方法(Symbol.iterator自带的一个next方法)
return{
//定义next方法
next : () => {
// 判断读取完毕的条件
if (idx < arr.length) {
return {value:arr[idx++],done:false}
} else {
return {value:undefined,done:true}
}
}
}
}
let arr = [6,1,2,3,5,7];
let iterator = iter(arr);
// 执行调用函数中的方法,并打印输出验证结果
console.log(iterator.next())//此时是执行一次的结果,输出为6
...
console.log(iterator.next())//输出完毕,输出{value:undefined,done:true}