老师 这死循环是怎么回事?

来源:4-13 迭代器Iterator

爱宁w

2020-10-30

都能遍历出来 但是有一个undefined 一直打印

let course={
    allcourse:{
        frontend: ['ES','JS','CSS'],
        backend: ['java','PHP','python'],
        webapp: ['Android','IOS']
    }
}
//可迭代协议:Symbol.iterator
//迭代器协议:return {next(){return{vale,down}}}
course[Symbol.iterator]=function(){
    let allcourse=this.allcourse
    let keys=Reflect.ownKeys(allcourse)
    let values=[]
    return {
        next(){
            if(!values.length){
                if(keys.length){
                    values=allcourse[keys[0]]
                    keys.shift()
                }
            }
            return{
                down: !values.length,
                value: values.shift()
            }
        }  
    }
}
for(let c of course){
    console.log(c);
}```


写回答

1回答

爱宁w

提问者

2020-10-30

已找到原因 

0
2
Rainbow_周
回复
厉伊
看下有没有拼错的单词,done
2021-10-11
共2条回复

JavaScript ES(6-11)全版本语法 前端都需要的基础课

前端无门槛学习,从ES6到ES11,一套课程掌握JS最新语法

1328 学习 · 296 问题

查看课程