Oppgave 4
Gjør endringer på koden i oppgave 3 slik at samme navn ikke blir plukket ut flere ganger.
Utfør denne oppgaven i to steg:
- Beskriv hvordan du ville gjort dette om det var en papirliste med navn (se bort i fra programmering).
- Skriv koden som reflekterer denne fremgangsmåten.
Resultat
Jeg ville skrevet navnene i en liste, så hadde jeg stryki over det navn som ble tilfeldig valgt. Et navn som er stryki kan ikke bli valgt.
Koden
JavaScript
window.onload = ready;
function ready() {
showNames(); // Kjør funkjsonen med en gang
document.getElementById("o4-get-names").onclick = showNames;
}
function showNames() {
var output = document.getElementById("o4-new-array");
var studentsOrg = [
"Hans",
"Ole",
"Nils",
"Olav",
"Per",
"Knut",
"Kari",
"Line",
"Pia"
];
var studentsNew = [];
// Plukk ut 3 tilfeldig student og legg de til i array.
for (var i = 0; i < 3; i++) {
var random = Math.floor(Math.random() * studentsOrg.length);
studentsNew.push(studentsOrg[random]);
studentsOrg.splice(random, 1); // Fjern student fra orginal listen
}
output.value = "3 Random ulike studenter: " + studentsNew.join(", ");
document.getElementById("o4-remaining").innerHTML = "Gjenværende studenter: " + studentsOrg.join(", ");
}
HTML
<div class="row input-field">
<input id="o4-new-array" class="col s8" type="text" readonly>
<button id="o4-get-names" class="btn black col s4">Hent navn</button>
<p id="o4-remaining"></p>
</div>