Tim Hallyburton Tim Hallyburton - 3 months ago 18
Javascript Question

Create Array from Generator in JavaScript

I want to create an array from the values of an generator in JavaScript.
The generator creates a sequence of dynamic length like this

function* sequenceGenerator(minVal, maxVal) {
let currVal = minVal;

while(currVal < maxVal)
yield currVal++;
}


I want to store those values in an array but using
next()
until the generator is done does not seem to be the best way possible (and looks quite ugly to be honest).

var it, curr, arr;

it = sequenceGenerator(100, 1000);
curr = it.next();
arr = [];

while(! curr.done){
arr.push(curr.value);
}


Can I somehow create an array directly from/within the generator?
If not, can I somehow avoid/hide the loop? Maybe by using
map
or something like that?

Thanks in advance.

Answer

One short solution might be:

let list = [...sequenceGenerator(min, max)]

Documentation on MDN

Comments