🌐 JavaScript Grundlagen

JS 04: Arrays, Sets & Maps

Lerne funktionale Transformationen mit .map(), .filter(), .reduce() sowie einzigartige Sets und flexible Maps.

💡 1. Moderne Array-Methoden (map, filter, reduce)

Verarbeite Datenreihen deklarativ, lesbar und unveränderlich (ohne das Original-Array zu mutieren):

const preise = [10, 25, 40, 5];

// 🎯 1. .map() - Jedes Element transformieren:
const mitMwSt = preise.map(p => p * 1.19);

// 🎯 2. .filter() - Elemente nach Kriterium filtern:
const teuer = preise.filter(p => p >= 20); // [25, 40]

// 🎯 3. .reduce() - Aggregieren zu einem Gesamtwert:
const gesamt = preise.reduce((sum, p) => sum + p, 0); // 80

🎟️ 2. Sets: Eindeutige Mengen ohne Duplikate

Ein Set garantiert, dass jeder Wert nur genau einmal vorkommt. Ideal für Duplikatbereinigung und schnelle Existenzprüfungen:

// 🎯 Set erstellen & befüllen:
const tags = new Set(["js", "web", "js", "frontend"]);
console.log(tags.size); // 3 (da "js" nur 1x existiert)

tags.add("backend");
console.log(tags.has("web")); // true (O(1) schneller Lookup)

// 🌟 Duplikate aus Array entfernen (Spread):
const duplikate = [1, 2, 2, 3, 1, 4];
const einzigartig = [...new Set(duplikate)]; // [1, 2, 3, 4]

📖 3. Maps: Flexible Schlüssel-Wert-Speicher

Eine Map verknüpft Schlüssel mit Werten. Jeder Schlüssel kann einen beliebigen Typ haben (auch Strings, Zahlen oder Objekte):

// 🎯 Map erstellen & befüllen:
const config = new Map();
config.set("thema", "dark");
config.set("benachrichtigungen", true);

console.log(config.get("thema")); // "dark"
console.log(config.has("sprache")); // false
console.log(config.size); // 2

// 🎯 Aus 2D-Array initialisieren:
const lexikon = new Map([
  ["de", "Guten Tag"],
  ["en", "Hello"]
]);
🎭 Didaktische Analogie: Fotogalerie, VIP-Club & Telefonbuch

Array (Die Fotogalerie): Ein Fotoalbum mit festen Seiten-Nummern (Indizes 0, 1, 2...). Du kannst dasselbe Bild mehrfach einkleben und Filterfolien darüber legen.

Set (Der VIP-Club): Die Gästeliste an der Tür: Ein Gast kann nicht zweimal auf der Liste stehen. Neue Duplikate werden sofort abgewiesen.

Map (Das moderne Telefonbuch): Schnelles Nachschlagen: Du nennst den Namen (Key) und bekommst sofort die Nummer (Value) zurück.

📑 4. Cheat-Sheet: Array, Set & Map

Typ Syntax / Methode Beschreibung
Array arr.map(fn) Erzeugt neues transformiertes Array
Array arr.filter(fn) Filtert Elemente nach Wahrheitsbedingung
Array arr.reduce(fn, start) Aggregiert alle Werte zu einem Gesamtwert
Set new Set(arr) / [...set] Menge ohne Duplikate; Konvertierung zu Array
Set set.has(val) / set.add(val) Element prüfen / hinzufügen (Größe: .size)
Map map.set(k, v) / map.get(k) Schlüssel-Wert-Paar setzen / abrufen
Map new Map(entries) Initialisierung aus [[k, v], ...]

🎯 Aufgaben & Checkliste in aufgabe.js

💡 Tipp für Teilziel 4 & 6

Für entferneDuplikate: return [...new Set(liste)];. Für zaehleHaeufigkeiten: Iteriere mit for (const w of woerter) und setze map.set(w, (map.get(w) || 0) + 1);.

💻 In Web-IDE öffnen → ← Zurück zu JS 03 Weiter zu JS 05 →