I\'ve got this recursive generator
may be something like
var obj = [1, 2, 3, [4, 5, [6, 7, 8], 9], 10]; function* flat(x) { if (Array.isArray(x)) { yield x.map(v => { return [...flat(v)].join(); }); } else yield "foo" + x; } console.log([...flat(obj)]);