Search code examples
javascriptarraysgenerator

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.


Solution

  • I found another way

    var arr = Array.from( sequenceGenerator(min, max) );
    

    works aswell.