Oppgave 7

Skriv ut lister med tall mellom 0 og 100 etter følgende regler:

Resultat

Koden

JavaScript

                
window.onload = ready;
var o7OutputEl;

function ready() {
    o7OutputEl = document.getElementById("o7-output");

    document.getElementById("o7-forward").onclick = outputForward;
    document.getElementById("o7-backwards").onclick = outputBackwards;
    document.getElementById("o7-div-2").onclick = outputDiv2;
    document.getElementById("o7-divable-3").onclick = outputDivable3;
    document.getElementById("o7-even").onclick = outputEven;
    document.getElementById("o7-odd").onclick = outputOdd;
    document.getElementById("o7-neg-pos").onclick = outputNegPos;
}


function outputForward() {
    empty(); // Tøm listen først

    for (var i = 0; i <= 100; i++) {
        o7OutputEl.innerHTML += i + ", ";
    }

    // Kunne blitt løst med shorthand statement, men ville ikke tvinge koden til å kjøre en if check 100
    // ganger (selv om det har minimalt å si...)
    removeComma();
}

function outputBackwards() {
    empty();

    for (var i = 100; i >= 0; i--) {
        o7OutputEl.innerHTML += i + ", ";
    }

    removeComma();
}

function outputDiv2() {
    empty();

    for (var i = 0; i <= 100; i++) {
        o7OutputEl.innerHTML += i / 2 + ", ";
    }

    removeComma();
}

function outputDivable3() {
    empty();

    for (var i = 0; i <= 100; i++) {
        o7OutputEl.innerHTML += i % 3 === 0 ? i + ", ":"";
    }

    removeComma();
}

function outputEven() {
    empty();

    for (var i = 0; i <= 100; i++) {
        o7OutputEl.innerHTML += i % 2 === 0 ? i + ", ":"";
    }

    removeComma();
}

function outputOdd() {
    empty();

    for (var i = 0; i <= 100; i++) {
        o7OutputEl.innerHTML += i % 2 !== 0 ? i + ", ":"";
    }

    removeComma();
}

function outputNegPos() {
    empty();

    for (var i = 0; i <= 100; i++) {
        o7OutputEl.innerHTML += (i % 2 === 0 ? i : -i) + ", ";
    }

    removeComma();
}

function removeComma() {
    o7OutputEl.innerHTML = o7OutputEl.innerHTML.slice(0, -2);
}

function empty() {
    o7OutputEl.innerHTML = "";
}
                
            

HTML

                
<div class="row">
    <div class="col s6 space-v-small">
        <button id="o7-forward" class="btn black">Forlengs</button>
    </div>
    <div class="col s6 space-v-small">
        <button id="o7-backwards" class="btn black">baklengs</button>
    </div>
    <div class="col s6 space-v-small">
        <button id="o7-div-2" class="btn black">Delt på 2</button>
    </div>
    <div class="col s6 space-v-small">
        <button id="o7-divable-3" class="btn black">Delelige på 3</button>
    </div>
    <div class="col s6 space-v-small">
        <button id="o7-even" class="btn black">Partall</button>
    </div>
    <div class="col s6 space-v-small">
        <button id="o7-odd" class="btn black">Oddetall</button>
    </div>
    <div class="col s12 space-v-small">
        <button id="o7-neg-pos" class="btn black">Annenhvert tall + og -</button>
    </div>
</div>
<p id="o7-output"></p>