Zum Inhalt springen
BetaEN
Lektion 4 von 11JavaScript

JavaScript · Lektion 4 · 30 Minuten

Arrays – viele Werte auf einmal

Das lernst du

  • Arrays anlegen und Werte mit dem Index lesen
  • Werte mit push hinzufügen und mit for…of durchgehen
  • Arrays mit filter und map verarbeiten

Ein Array anlegen

Ein Array ist eine Liste von Werten in eckigen Klammern. Wie in Python beginnt das Zählen bei 0:

const tiere = ["Hund", "Katze", "Maus"];
console.log(tiere[0]);
console.log(tiere.length);
console.log(tiere[tiere.length - 1]);   // das letzte

Hinzufügen und durchgehen

const einkauf = ["Brot"];
einkauf.push("Milch");
einkauf.push("Äpfel");

for (const sache of einkauf) {
  console.log("-", sache);
}

for…of geht jedes Element durch – wie for sache in einkauf: in Python.

Gut zu wissen: Auch ein const-Array kann man verändern (mit push). const heißt nur: Die Variable zeigt immer auf dasselbe Array.

filter und map

Arrays haben eingebaute Werkzeuge. Die zwei wichtigsten:

  • filter behält nur die Elemente, für die eine Bedingung gilt.
  • map verwandelt jedes Element in etwas Neues.
const zahlen = [3, 8, 12, 5, 20];
const gross = zahlen.filter((z) => z > 6);
const doppelt = zahlen.map((z) => z * 2);
console.log(gross);
console.log(doppelt);

(z) => z > 6 ist eine kleine Funktion ohne Namen – mehr dazu in der Lektion über Funktionen.

Kurz-Check

Was gibt dieses Programm aus?

const a = [1, 2, 3, 4];
a.push(5);
console.log(a.filter((x) => x > 2).length);

Deine Aufgabe

Jetzt bist du dran

Schreib zwei Funktionen. gerade(zahlen) gibt ein neues Array mit allen geraden Zahlen zurück. durchschnitt(zahlen) gibt den Durchschnitt zurück (Summe geteilt durch Anzahl).

function gerade(zahlen) {
}

function durchschnitt(zahlen) {
}

console.log(gerade([1, 2, 3, 4, 6]));
console.log(durchschnitt([2, 4, 9]));

Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.

Lösung anzeigen

Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:

function gerade(zahlen) {
  return zahlen.filter((z) => z % 2 === 0);
}

function durchschnitt(zahlen) {
  let summe = 0;
  for (const z of zahlen) {
    summe += z;
  }
  return summe / zahlen.length;
}

console.log(gerade([1, 2, 3, 4, 6]));
console.log(durchschnitt([2, 4, 9]));