Articles of 迭代器

有没有办法说收集 .attr2 =在Javascript中的值?

有没有办法像这样说 User.friends[id=1].posts=data 在Javascript中,其中User.friends是Friend项目的集合,其中一个属性是'id'? 我正在遍历一个集合User.friends,它是具有3个属性(id,posts和likes)的Friend对象的集合。 内部迭代器实例variablesfriend,似乎不是通过引用传递的; 那么,我该如何在迭代器中优雅地设置父对象的属性呢? async.each(User.friends, function(friend, cb) { var url="https://graph.facebook.com/"+friend.id.id+"/?fields=posts&since="+ moment(postFromDate).format('YYYY-MM-DD') + '&access_token=' + User.accessToken; request.get({ url: url, json: true }, function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body); //I WANT TO SET THE ACTUAL User.friend[i].posts value, //but I do not know how to get the value 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']; […]