您的位置:首页 > 其它

014-Iterator接口和for...of循环

2018-03-26 22:59 316 查看
/**
* Iterator接口和for...of循环
*
* 介绍:
*    如Array Object Set Map等数据结构,的使用方式各异,而通过Iterator接口
*    致力于统一他们的调用方式,让他们在使用上尽可能的相同,这就是他的功能
*
*/

{ //数组内置的Iterator接口
let arr=['hello','world'];
let map=arr[Symbol.iterator]();
console.log(map.next());
console.log(map.next());
console.log(map.next());
}

{ //自定义Iterator接口
let obj={
start:[1,3,2],
end:[7,9,8],
[Symbol.iterator](){
/**
* 达到的效果(先遍历start,再遍历end)
* @type {obj}
*/
let self=this;
let index=0;
let arr=self.start.concat(self.end);
let len=arr.length;
return {
next(){
if(index<len){
return {
value:arr[index++],
done:false
}
}else{
return {
value:arr[index++],
done:true
}
}
}
}
}
}
for(let key of obj){
console.log(key); //1 3 2 7 9 8
}
}

{ //for...of循环
let arr=['hello','world'];
for(let value of arr){
console.log('value',value);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  es6