es6解读6- Iterator 和 for...of 循环

2017-10-27  本文已影响0人  HowlEagle101Div

什么是Iterator接口

Iterator的基本用法

for...of

数组自动帮我们带了iterator接口

let arr=['hello','world'];
let map=arr[Symbol.iterator]();
console.log(map.next());
console.log(map.next());
console.log(map.next());

Object {value: "hello", done: false};done代表,是否做完了所有操作,true:代表是; false:代表无,还有其他操作;

Object对象不是一个iterator,那么如何把它变成一个iterator呢?

let obj={
   start:[1,3,2],
    end:[7,8,9],
    [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);
}

let...of的使用

let arr=['hello','world'];
for(let value of arr){
   console.log(value);
}
上一篇下一篇

猜你喜欢

热点阅读