Metodo __iterator__ en node.js

9 views
Skip to first unread message

Tio Oscar

unread,
Nov 5, 2012, 9:31:18 AM11/5/12
to node...@googlegroups.com
Buenas gente, quiero hacer un objeto iterable y me di cuenta que el metodo magico __iterator__ no funciona en node:

[exos@Coopx ~]$ node
> var a = {};
undefined
> a.__iterator__ = function () {
... return [0,1,2,3,4,5];
... }
[Function]
>
undefined
> for (x in a) console.log(x);
__iterator__
undefined
> a.__iterator__ = function __iterator__ () {
... return [0,1,2,3,4,5];
... }
[Function: __iterator__]
> for (x in a) console.log(x);
__iterator__
undefined
> a = function () {}
[Function]
> a.__iterator__ = function __iterator__ () {
... reuturn [0,1,2,3,4,5];
... }
[Function: __iterator__]
> for (x in a) console.log(x);
__iterator__
undefined
>


Como podría hacer en Node un objeto iterable, mi idea es conservar igualmente sus metodos y propiedades asi que no va la de devolver un array.

--
El Tio ~ Programador, hacker y filósofo
web: http://blog.exodica.com.ar
Linked'in: http://www.linkedin.com/in/ogentilezza
Twitter: @exos, Indeti.ca: @exos
Tels: [+54 11] 638-LINUX (54689) - [+54 9 11] 6133-2442

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/IT d-- s:++ a- C+++$ UBL+++$ P(-) L+++$ !E--- W+++$ !N !o K-? !w--- !O !M-- V? PS+++@ !PE Y+(++) PGP++ !t--- !5 X++ R(+) tv--? b- DI D-- G e@ h>++ r+++(-) y+++>+++++
------END GEEK CODE BLOCK------

Guillermo Rauch

unread,
Nov 5, 2012, 9:51:13 AM11/5/12
to node...@googlegroups.com
Generators no está disponible en V8 todavía. Podrias usar alguna wrapper que sea compatible con generators a futuro, tal como https://github.com/component/enumerable


2012/11/5 Tio Oscar <tio...@gmail.com>



--
Guillermo Rauch
LearnBoost CTO
http://devthought.com

Leonardo Otero

unread,
Nov 5, 2012, 9:53:13 AM11/5/12
to node...@googlegroups.com
Probaste con un forEach(...)?

2012/11/5 Tio Oscar <tio...@gmail.com>:

Tio Oscar

unread,
Nov 5, 2012, 9:58:08 AM11/5/12
to node...@googlegroups.com
Si, voy a tener que arreglarmelas por otro lado, de por si ya tenia un método .each justamente para emular eso, pero queria que sea iterable posta, y que se pueda acceder por indice, otra cosa que puedo probar es extender de Array, pero tendría que ver como hacer.

Gracias.

Tio Oscar

unread,
Nov 5, 2012, 9:58:34 AM11/5/12
to node...@googlegroups.com
El 5 de noviembre de 2012 11:53, Leonardo Otero <oterol...@gmail.com> escribió:
Probaste con un forEach(...)?


?

creo que no enteniste la pregunta.
 

Leonardo Otero

unread,
Nov 5, 2012, 10:02:51 AM11/5/12
to node...@googlegroups.com
Veo que perdon.

2012/11/5 Tio Oscar <tio...@gmail.com>:

Demián Andrés Rodriguez

unread,
Nov 5, 2012, 10:05:46 AM11/5/12
to node...@googlegroups.com
Object.keys(obj).forEach(function(k) {obj[k]})


2012/11/5 Tio Oscar <tio...@gmail.com>
Reply all
Reply to author
Forward
0 new messages