Statt Schleifen schreibst du Listenverarbeitung in JavaScript meist mit Array-Methoden, die eine Funktion als Argument bekommen. Sie ändern das Original nicht und sind gut lesbar.
forEach
Ruft eine Funktion für jedes Element auf (kein Rückgabewert):
Eingabe (optional)
Ergebnis
Ausgabe
0 a 1 b 2 c
map: jedes Element umwandeln
Liefert ein neues Array gleicher Länge:
Eingabe (optional)
Ergebnis
Ausgabe
[ 11.899999999999999, 23.799999999999997, 35.699999999999996 ] [ 'Mia', 'Tom' ] [ 'Mia', 'Tom' ] [ 1, 2, 3 ]
filter: Elemente auswählen
Liefert nur die Elemente, für die die Funktion true ergibt:
Eingabe (optional)
Ergebnis
Ausgabe
[ 2, 4, 6 ] [ 'a', 5 ] [ 'Tom' ]
reduce: alles zu einem Wert zusammenfassen
reduce((akku, element) => neuerAkku, startwert):
Eingabe (optional)
Ergebnis
Ausgabe
10
4
{ a: 3, b: 1, c: 1 }Verketten (Pipelines)
Eingabe (optional)
Ergebnis
Ausgabe
26
Weitere nützliche Methoden
| Methode | Wirkung |
|---|---|
flatMap(f) | map und danach ein Level flach machen |
find, findIndex, findLast | erstes/letztes passendes Element |
some, every | mindestens eins / alle erfüllen |
join(trenner) | zu Text verbinden |
Object.groupBy(arr, f) | nach Schlüssel gruppieren |
toSorted, toReversed, toSpliced, with | Kopien statt Änderung |
Eingabe (optional)
Ergebnis
Ausgabe
[ 1, 2, 3 ]
[ 'Hallo', 'Welt', 'Guten', 'Tag' ]
[Object: null prototype] { ungerade: [ 1, 3, 5 ], gerade: [ 2, 4 ] }
[ 99, 1, 2 ] 1 - 2 - 3Callback-Argumente
Die übergebene Funktion bekommt bis zu drei Argumente: Element, Index und das ganze Array.
Eingabe (optional)
Ergebnis
Ausgabe
[ '1/2: a', '2/2: b' ] [ 10, NaN, 2 ] [ 10, 10, 10 ]
Übung
Übung mit Autokorrektur
Lies Wörter ein. Bilde mit einer Pipeline die Wörter mit mehr als drei Buchstaben, in Großbuchstaben und sortiert. Gib sie durch Leerzeichen getrennt aus.
Merke
mapwandelt um,filterwählt aus,reducefasst zusammen- Sie liefern neue Werte und ändern das Original nicht
- Pipelines aus
filter,map,reduceersetzen viele Schleifen flatMap,some,every,find,Object.groupByergänzen die Palette- Vorsicht bei
map(parseInt): das zweite Argument ist der Index
Aufgabe
Gegeben ist eine Liste von Wörtern. Bilde mit einer Pipeline die Liste aller Wörter mit mehr als drei Buchstaben in Großschreibung, sortiert.