迭代器iterator,用来遍历数组(废话)
原理 创建一个指针指向第一个,然后不停的指向下一个
那究竟怎么用呢
const xiyou=['跳转','孙悟空','猪八戒','深圳'];
//使用for of遍历
for (let v of xiyou){
console.log(v);
//返回的是键值 跳转,孙悟空,猪八戒,深圳
}
for (let v in xiyou){
console.log(v);
//返回的是键名0,1,2,3
}
要是有朋友想写一个迭代器怎么办
写呗
//自建迭代器遍历数据
const banji={
name:"一班",
stu:[
'aa',
'aac',
'sdfsd',
'sdvdvsds'
],
[Symbol.iterator](){
//索引变量
let index =0;
let _this=this;
return{
next:function(){
if(index <_this.stus.length){
const result={value:_this.stus[i],done:false};
//done是是否停止的意思,相当于不停止
index++;
//返回结果
return result;
}
else{
return {value:undefined,done:true};
//没了就停止了,返回true了
}
}
}
}
}
for (let v of banji){
console.log(v);
}