JavaScript
for-løkken
En for-løkke gentager den samme kode et bestemt antal gange. Du skriver tre ting i parentesen: hvor tælleren starter, hvor længe den skal blive ved, og hvor meget den tæller op hver gang. Det er den løkke, du bruger til at løbe et array igennem.
Forudsætter, at du har set variabler i javascript , if og else .
De tre ting i parentesen
En for-løkke ser skræmmende ud, indtil man opdager, at parentesen bare
indeholder tre adskilte ting med semikolon imellem.
for (let i = 0; i < 5; i++) {
console.log(i);
} Output
Tryk på “Kør koden”.
let i = 0. Start. Kører én gang, før løkken går i gang.i < 5. Betingelse. Tjekkes før hvert gennemløb. Er den falsk, stopper løkken.i++. Optælling. Kører efter hvert gennemløb.i++betyder “læg 1 tili”.
Læs den højt for dig selv: “start ved 0, bliv ved så længe i er under 5, og tæl én op hver gang”. Så er der ikke mere i det.
Bemærk, at den skriver 0, 1, 2, 3, 4, ikke 1 til 5. Det er med vilje, og det er fordi arrays også begynder ved 0.
Løkken og arrayet hører sammen
Den absolut hyppigste brug er at komme igennem alle elementer i et array.
liste.length er antallet af elementer, og fordi det første element ligger på
plads 0, ligger det sidste på plads length - 1.
const navne = ["Ida", "Omar", "Sofie"];
for (let i = 0; i < navne.length; i++) {
console.log(i + ": " + navne[i]);
} Output
Tryk på “Kør koden”.
Prøv at ændre i < navne.length til i <= navne.length og kør igen. Så får du
undefined til sidst, fordi du beder om en plads, der ikke findes. Det er den
klassiske fejl, og den hedder en off-by-one.
At tælle på andre måder
Du er ikke bundet til at tælle én op ad gangen.
for (let i = 10; i > 0; i = i - 2) {
console.log(i);
} Output
Tryk på “Kør koden”.
Og skal du bare igennem alle elementer uden at bruge tælleren til noget, findes
den kortere for...of:
const navne = ["Ida", "Omar", "Sofie"];
for (const navn of navne) {
console.log(navn);
} Output
Tryk på “Kør koden”.
Brug den, når du kun skal bruge værdien. Brug den almindelige for, når du også
skal bruge nummeret på pladsen.
break og continue
breakafbryder løkken helt.continuespringer resten af det aktuelle gennemløb over og går til det næste.
const tal = [4, 7, 12, 3, 9];
for (let i = 0; i < tal.length; i++) {
if (tal[i] % 2 === 0) {
continue;
}
if (tal[i] > 8) {
console.log("Første ulige tal over 8: " + tal[i]);
break;
}
} Output
Tryk på “Kør koden”.
% er restdivision: 12 % 2 er 0, fordi 12 går op i 2. Det er den normale måde
at teste for lige tal på.
Kort opsamling
- Tre dele i parentesen: start, betingelse, optælling.
i < length, ikkei <= length.for...of, når du kun skal bruge værdien.- En løkke, der ikke stopper, skyldes næsten altid en tæller, der ikke ændrer sig.
Øv dig
Læs videre
- while-løkken while-løkken i JavaScript forklaret på dansk. Hvornår du bruger while frem for for, hvordan do...while adskiller sig, og hvordan du undgår en uendelig løkke.
- Arrays Arrays i JavaScript forklaret på dansk: opret en liste, hent et element, tilføj og fjern, og løb den igennem med en løkke. Med eksempler du kan køre.
- map, filter og find map, filter, find og reduce i JavaScript forklaret på dansk, med eksempler du kan køre. Hvornår du bruger hvilken, og hvorfor de er bedre end en for-løkke.
Senest gennemgået .