迭代器解决对象不能for of

迭代器

迭代器解决对象不能使用for of方法

let person = {
    name:'Giles',
    age:23,
    [Symbol.interator]function(){
        1. 首先获取key值
        let keys = Object.keys()
        2. 定义下标
        let index
        3. 定义一个next方法
        return {
            next:()=>{
                1. 获取key和value值
                let proName = keys[index]
                let proValue = this[proName]
                let result;
                2. 继续迭代添加判断
                if(proName){
                    result = {
                        // 这里是中括号proName,否则获取的不是key
                        value:{[proName]:proValue},
                        done:false
                    }
                }else{
                    result = {
                        value:undefined,
                        done:true
                    }
                }
                index++
                return result
            }
        } 
    }
}

你可能感兴趣的:(数学建模)