JSFiddle - React, Tailwind, and code Playground

HTML

<input type="text" id="cislo" placeholder="Známka">
<select id="vyber">
    <option value="0">Vyberte typ zkoušení</option>
    <option value="0.1">Malý domácí úkol</option>
    <option value="0.2">_20</option>        
    <option value="0.333">_33,3</option>
    <option value="0.4">Pětiminutovka - krátké opakovací zkoušení</option>
    <option value="0.4">Samostatná práce</option>
    <option value="0.4">_40</option>
    <option value="0.6">Desetiminutovka - krátké opakovací zkoušení</option>
    <option value="0.6">Referát</option>
    <option value="0.6">Domácí úkol</option>
    <option value="0.6">_60</option>
    <option value="0.666">_66,6</option>
    <option value="0.8">Dvacetiminutovka - opakovací zkoušení</option>
    <option value="0.8">_80</option>
    <option value="1">Ústní zkoušení</option>
    <option value="1">Čtvrtletní zkoušení</option>
    <option value="1">Písemné zkoušení</option>
    <option value="1">_100</option>
</select>
<button id="tlacitko">Přidat známku</button>
<p id="prumerna-znamka"></p>

JavaScript

//window.onload = function () {
    document.getElementById('tlacitko').onclick = pridatZnamku;
//};

var znamky = [];

/**
 * Do pole přidá hodnotu textového pole tolikrát, kolik činí váha dané známky.
 */
function pridatZnamku() {
    var vaha = document.getElementById('vyber').value * 10;
    var znamka = document.getElementById('cislo').value;

    for (var i = 0, l = vaha; i < l; i++) {
        znamky.push(znamka);
    }

    document.getElementById('prumerna-znamka').innerHTML = spocitejPrumer(znamky);
}

/**
 * Spočítá průměr všech prvků v poli.
 * @param {Array} pole Zdrojové pole.
 * @returns {Number} Průměr prvků v poli zaokrouhlený na 2 desetinná místa.
 */
function spocitejPrumer(pole) {
    var pocetPrvku = pole.length;
    var soucet = 0;
    for (var i = 0; i < pocetPrvku; i++) {
        soucet += +pole[i];
    }
    return Math.round(100 * soucet / pocetPrvku) / 100;
}