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
pushhinzufügen und mitfor…ofdurchgehen - Arrays mit
filterundmapverarbeiten
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 letzteHinzufü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).constheißt nur: Die Variable zeigt immer auf dasselbe Array.
filter und map
Arrays haben eingebaute Werkzeuge. Die zwei wichtigsten:
filterbehält nur die Elemente, für die eine Bedingung gilt.mapverwandelt 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]));- Denkanstoß
zahlen.filter((z) => z % 2 === 0)behält nur die geraden Zahlen. - Welcher Befehl hilft?
Summe mit
for…ofbilden und dann durchzahlen.lengthteilen. - Lückencode – ergänze die ___
function gerade(zahlen) { return ___; } function durchschnitt(zahlen) { let summe = ___; for (___) { summe += ___; } return ___; } 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🔒 Erst nach allen Hinweisen oder 2 Prüf-Versuchen
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]));