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