(二)19.Iterator和for...of循环19-08-1
2019-08-15 本文已影响0人
你坤儿姐
- Iterator遍历
{
//iterator遍历
//定义一个数组
let arr=['hello','world'];
//调用Iterator接口
let map=arr[Symbol.iterator]();
console.log(map.next());
console.log(map.next());
console.log(map.next());
}
{
let obj={
start:[1,3,2],
end:[7,9,8],
[Symbol.iterator](){
let self=this;//self指向this
let index=0;//记住当前遍历的索引
let arr=self.start.concat(self.end);//将start和end数组合并
let len=arr.length;//记住数组长度
// 这里一定要返回一个对象
return{
//返回的对象上是有一个next方法的
next(){
//当前的索引小于数组长度的时候,返回当前值就可以了
if (index<len){
return {
value:arr[index++],
done:false //done表示是不是已经结束了,false表示没有
}
}else {
return{
value:arr[index++],
done:true
}
}
}
}
}
}
//验证一下接口是否部署成功了
for (let key of obj){
console.log(key);
}
}
打印结果:
{value: "hello", done: false}
{value: "world", done: false}
{value: undefined, done: true}
1
3
2
7
9
8
- for of 循环
{
// for of 循环
let arr=['hello','world'];
for (let value of arr){
console.log('value',value);
}
}
打印结果:
value hello
value world