Arrays 📚
Bisher haben wir nur mit Werten von sogenannten primitiven Datentypen (Strings, Numbers, Booleans) gearbeitet. Es gibt noch eine weitere Art: composite Typen — Datentypen, die aus mehreren Werten zusammengesetzt sind.
Der erste composite Datentyp, den wir uns anschauen, ist Array (Liste).
Basics
Ein Array ist ein Wert, der eine beliebig lange Liste von Werten enthält. Ein
Array wird mit eckigen Klammern [] geschrieben, mit den enthaltenen Werten
innerhalb der Klammern, durch Kommas getrennt:
Der Array selbst ist ein ganz normaler JavaScript-Wert — du kannst ihn in einer Variable speichern, an Funktionen übergeben, von Funktionen zurückgeben, etc.
Index Access
Auf einzelne Elemente eines Arrays greifst du mit dem Index zu — die Position
in eckigen Klammern. Achtung: der erste Index ist 0, nicht 1!
Index Assignment
Mit derselben Notation kannst du Elemente auch überschreiben — einfach mit
= einen neuen Wert zuweisen.
Array Builtins
Arrays haben — ähnlich wie Strings — viele builtin Methoden und Properties. Einige davon heißen und funktionieren sogar genauso wie bei Strings:
.length— eine Property (kein()dahinter), enthält die Anzahl der Elemente.includes(x)— eine Funktion, gibt zurück, ob der übergebene Wert im Array enthalten ist.indexOf(x)— gibt die Position des Wertes zurück, oder-1, falls er nicht enthalten ist.slice(start, end)— gibt den entsprechenden Teilbereich des Arrays als neuen Array zurück (genau wie.substringauf Strings)
Elemente hinzufügen und entfernen
.push(x)— fügtxans Ende an.unshift(x)— fügtxan den Anfang an.pop()— entfernt das letzte Element und gibt es zurück.shift()— entfernt das erste Element und gibt es zurück
Beliebige Werte — verschachtelte Arrays
In einem Array können auch andere Arrays stehen. Damit lassen sich z.B. zweidimensionale Daten wie ein Tic-Tac-Toe-Brett darstellen:
for of-Loops
Da man beim Programmieren sehr häufig einen Loop schreiben muss, um irgendetwas
mit jedem Element eines Arrays zu tun, gibt es hierfür eine spezielle Kurzform
— den for of-Loop:
Die allgemeine Form ist for (const <name> of <array>) { <body> }, wobei
<name> der Name der neuen lokalen Variable ist, die automatisch pro Durchlauf
das aktuelle Element des Arrays enthält.
Übung 🎯 — filterStrings
Schreib eine exportierte Funktion filterStrings(arr), die einen Array aus
Strings entgegennimmt und einen neuen Array aus Strings zurückgibt. Der neue
Array soll alle Strings enthalten, die
- mindestens 5 Zeichen lang sind oder
- mit
"S"anfangen
— und das in umgekehrter Reihenfolge.
Beispiel:
filterStrings(["Kugelschreiber", "Salz", "Maus"])soll["Salz", "Kugelschreiber"]zurückgeben.
💡 Tipp anzeigen
- Iteriere mit
for ofdurch den Array. - Bau dir einen leeren
result-Array auf und benutze.pushfür die Treffer. - Am Ende mit
.reverse()umdrehen — oder direkt mit.unshifteinfügen. - String-Länge:
.length. Erstes Zeichen prüfen:s[0] === "S"oders.startsWith("S").
Geschafft! 🚀
Du beherrschst jetzt:
- Arrays als zusammengesetzte Datenstruktur
- Index-Zugriff und -Zuweisung
- Builtins:
.length,.includes,.indexOf,.slice,.push,.pop,.shift,.unshift - Verschachtelte Arrays
for of-Loops
Als Nächstes: String-Builtins →