Spring til indhold
Academi.dk

JavaScript

for-løkken

Begynder DA↔EN-ordliste 1 øvelse

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.

Eksempel
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 til i”.

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.

Eksempel
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.

Eksempel
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:

Eksempel
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

  • break afbryder løkken helt.
  • continue springer resten af det aktuelle gennemløb over og går til det næste.
Eksempel
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, ikke i <= 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

Senest gennemgået .