map, filter und reduce in JavaScript – Arrays ohne for-Schleife verarbeiten
Drei Array-Methoden ersetzen die meisten for-Schleifen: map wandelt jedes Element um, filter siebt, reduce fasst alles zu einem Wert zusammen. Ich erkläre reduce so, dass es endlich klick macht.
Sobald du in JavaScript eine for-Schleife schreibst, die ein Array durchgeht und ein neues Ergebnis aufbaut, geht es fast immer kürzer und lesbarer mit map, filter oder reduce.
map und filter
const produkte = [
{ name: "Tasse", preis: 9, lager: 0 },
{ name: "Shirt", preis: 25, lager: 4 },
{ name: "Buch", preis: 15, lager: 12 },
];
const verfuegbar = produkte
.filter(p => p.lager > 0) // nur lieferbare behalten
.map(p => p.name); // in Namen umwandeln
// ["Shirt", "Buch"]filter behält Elemente, für die die Funktion true liefert. map gibt für jedes Element einen neuen Wert zurück – gleiche Länge, andere Inhalte.
reduce – der Alleskönner
reduce fasst ein Array zu einem Wert zusammen. Es merkt sich einen „Akkumulator" und reicht ihn von Element zu Element weiter:
const gesamt = produkte.reduce((summe, p) => summe + p.preis, 0);
// Start bei 0, dann 0+9, +25, +15 → 49Der zweite Parameter (0) ist der Startwert – vergiss ihn nie, sonst bekommst du bei leeren Arrays einen Fehler. Mit reduce kannst du auch gruppieren:
const nachLager = produkte.reduce((acc, p) => {
const key = p.lager > 0 ? "lieferbar" : "ausverkauft";
(acc[key] ??= []).push(p.name);
return acc;
}, {});
// { ausverkauft: ["Tasse"], lieferbar: ["Shirt", "Buch"] }Merksatz
- map → gleich viele Elemente, umgewandelt
- filter → weniger Elemente, gleiche Form
- reduce → ein einziger Wert (Summe, Objekt, String …)
Diese drei nehmen mir in jedem Frontend die Schleifen ab. Mehr JavaScript-Snippets findest du auf code.bymw.de.
Quellen
Du brauchst mehr als ein Snippet?
Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.
Projekt anfragen →Verwandte Snippets
Web Worker – rechnen, ohne die Oberfläche einzufrieren
JavaScript hat im Browser genau einen Faden für alles: Klicks, Animationen, Layout – und deine Rechenschleife. Dauert die zwei Sekunden, ist die Seite zwei Sekunden lang tot. Ein Worker nimmt die Arbeit auf einen eigenen Faden.
Formulare ohne Neuladen abschicken – FormData und fetch
Ein Formular per JavaScript abzuschicken heißt nicht, jedes Feld einzeln auszulesen. FormData nimmt das ganze Formular, fetch schickt es weg – inklusive Dateien, und mit einer Fehlermeldung, die der Besucher versteht.
CustomEvent – Bausteine, die sich gegenseitig Bescheid sagen, ohne sich zu kennen
Sobald zwei Teile einer Seite aufeinander reagieren sollen, landet man schnell bei globalen Variablen oder Funktionsaufrufen quer durchs Projekt. Eigene Events entkoppeln das – mit denselben Mitteln, die der Browser selbst benutzt.