The following generator produces an iterator for nested arrays. Is this the 
best way to do recursion? Doesn’t seem terribly elegant.

    function* iterTree(tree) {
        if (Array.isArray(tree)) {
            // inner node
            for(let i=0; i < tree.length; i++) {
                for(let elem of iterTree(tree[i])) {
                    yield elem;
                }
            }
        } else {
            // leaf
            yield tree;
        }
    }

Interaction:

    $ let g = iterTree([[0, 1], 2]);
    $ g.next()
    0
    $ g.next()
    1
    $ g.next()
    2
    $ g.next()
    [object StopIteration]

-- 
Dr. Axel Rauschmayer
[email protected]

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to