javascript – ¿Cómo puedo asignar un valor select a una variable y que esta no sea undefined?


Estoy con un proyecto, simple. Quiero que un select tenga 3 datos 10, 20 y 40. Que por defecto cargue 10 y que con cada selección me actualice una variable que usaré para crear un Array. Concretame, 10, 20 y 40, son el numero de elementos que recogerá de un array más grande (preguntas).

Si lo pico a mano, funciona, si lo pongo así… nada.
Gracias de antemano a quien me de un poco de luz 🙂

window.onload = function() {
    fillBook();
}

var first_select;

function fillBook(){    
   first_select = document.getElementById('first-select').value;
   console.log(first_select);
}

//db_preguntas
var preguntas = (
    "Q_1", 
    "Q_2", 
    "Q_3",
    //... hay muchas

);
//db_respuestas
var respuestas = (
    ("CORRECTA r1_1", "incorrecta r2_1", "incorrecta r3_1", "incorrecta r4_1"),
    ("CORRECTA r1_2", "incorrecta r2_2", "incorrecta r3_2", "incorrecta r4_2"),
    ("CORRECTA r1_3", "incorrecta r2_3", "incorrecta r3_3", "incorrecta r4_3"),
    //... hay muchas

);

var n_Qs = first_select; //***esta es la variable de la discordia ******//

n_QsTOT = preguntas.length;
    
    const arr_Qs = new Array(preguntas);
    for (let i = 0; i < preguntas.length - 1; i++) {
        arr_Qs(i) = i + 1;
    }
    arr_Qs.sort(() => Math.random() > 0.5 ? 1 : -1);
    const newArray_Q = arr_Qs.slice(0, n_Qs); //nuevo Array: newArray_Q

    function logArrayElements(i, index, newArray_Q) {
        console.log("Q("+index+ ") = "+i);
    }
    newArray_Q.forEach(logArrayElements);
    <select id="first-select" onchange="fillBook()">
        <option value="10" selected>10 preguntas</option>
        <option value="20">20 preguntas</option>
        <option value="40">40 preguntas</option>
    </select>