问答详情
源自:7-2 TypeScript-for of循环

for...of不可迭代对象

老师,for...of貌似是不能迭代对象的吧,for..of遍历的对象应该包括数组,类数组集合,字符串,set和map结构等具有iterator接口的数据结构。而对象是没有iterator接口的

提问者:陌上兮月 2018-07-11 16:12

个回答

  • 陌上兮月
    2018-11-20 14:44:43

    你要这样自定义这个对象的遍历行为当然可以遍历了,手动去给它加上接口。但是就对于一个普通对象来说,它在原型的设计中就不存在iterator接口。Object.prototype[Symbol.iterator]打印出来的是undefined


  • hard_boy
    2018-07-18 11:27:14

    var json = {a: 1,b: 2};
    json[Symbol.iterator] = function* (){
        for(var k of Object.keys(this)){
            yield this[k];
        }
    }
    for(var k of json){
        console.log(json[k])
    }