Articles of 迭代器

Node.js迭代器接口

我正在阅读关于迭代器和生成器的MDN指南,并且实现了以下示例: function Range(low, high){ this.low = low; this.high = high; } Range.prototype.__iterator__ = function(){ return new RangeIterator(this); }; function RangeIterator(range){ this.range = range; this.current = this.range.low; } RangeIterator.prototype.next = function(){ if (this.current > this.range.high) throw StopIteration; else return this.current++; }; var range = new Range(3, 5); for (var i in range) { console.log(i); } 但是我得到这个: […]

有没有一种方法来指定node.js中的对象字面量的ES6生成器方法?

我似乎无法创build一个生成器方法作为对象文字。 这是我的工作源代码: function *getRecords (data) { for (var i = 0; i < data.length; i++) { yield data[i]; } } var records = getRecords(data); for (var record of records) { // process my record } 但是当我在对象字面量中移动我的生成器方法时: var myobj = { *getRecords: function (data) {…} } 我得到SyntaxError: Unexpected token * 如果我添加引号 var myobj = { '*getRecords': […]

将invRegex.py移植到Javascript(Node.js)

我一直试图将invRegex.py移植到node.js实现一段时间,但我仍然在努力。 我已经有了正则expression式分析树,这要归功于ret.js标记器,它工作得很好,但是所有不同元素的实际生成和连接都是以内存效率的方式展现给我的。 为了简单起见,可以说我有以下的正则expression式: [01]{1,2}@[af] invRegex.py会产生下面的输出( tabbified占用更less的空间): 0@a 0@b 0@c 0@d 0@e 0@f 00@a 00@b 00@c 00@d 00@e 00@f 01@a 01@b 01@c 01@d 01@e 01@f 1@a 1@b 1@c 1@d 1@e 1@f 10@a 10@b 10@c 10@d 10@e 10@f 11@a 11@b 11@c 11@d 11@e 11@f 考虑到我能够获得每个单独的令牌并生成一个包含所有有效的单个输出的数组: [01]{1,2} = function () { return ['0', '00', '01', '1', '10', '11']; […]