ES6-----学习系列十五(Iterator)
Iterator(迭代器)接口
{ let arr=['hello','world']; let map=arr[Symbol.iterator]();//数组实现了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](){ 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可以证明 obj实现了iterator接口 可以使用for of } }