为了账号安全,请及时绑定邮箱和手机立即绑定

如何迭代迭代器?

如何迭代迭代器?

繁华开满天机 2021-08-20 17:43:54
正如此处所述,所有 ES6 迭代器都是可迭代的(因此,您可以向它们申请 for-of 等)。考虑以下简短的演示,我试图弄清楚为什么我无法迭代it并得到TypeError: it is not iterable错误。var counter ={   [Symbol.iterator](){      var start=0, end=10, step=1;      var current = start;       return {        next(){          var done = current > end;          if(done) return {value: undefined, done: true};                  var res = {value: current, done: false};          current += step;          return res;      }    }  }}  var it = counter[Symbol.iterator]();for(let t of it){  console.log(t)}任何帮助表示赞赏。
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

该语句没有说“所有迭代器都是可迭代的”,而是“ ES6 中内置的所有迭代器都继承自IteratorPrototype并因此是可迭代的”。您的自定义迭代器{next(){…}}是一个普通对象并且不可迭代,因为它没有(或继承)Symbol.iterator属性。


查看完整回答
反对 回复 2021-08-20
  • 3 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信