// 1. Arrays verarbeiten
const numbers = [1, 2, 3, 4, 5];

// Map: Elemente quadrieren
const squared = numbers.map((num) => num * num);
console.log(squared); // [1, 4, 9, 16, 25]

// Filter: Nur gerade Zahlen behalten
const evens = numbers.filter((num) => num % 2 === 0);
console.log(evens); // [2, 4]

// Reduce: Alle Werte summieren
const sum = numbers.reduce((acc, num) => acc + num, 0);
console.log(sum); // 15

// Includes: Prüfen, ob ein Wert enthalten ist
console.log(numbers.includes(3)); // true

// Find: Erstes Element, das einer Bedingung entspricht
const found = numbers.find((num) => num > 3);
console.log(found); // 4

// Some: Prüfen, ob mindestens ein Element die Bedingung erfüllt
const hasEven = numbers.some((num) => num % 2 === 0);
console.log(hasEven); // true

// Every: Prüfen, ob alle Elemente die Bedingung erfüllen
const allPositive = numbers.every((num) => num > 0);
console.log(allPositive); // true

// Sort: Array sortieren
const sortedNumbers = [...numbers].sort((a, b) => b - a);
console.log(sortedNumbers); // [5, 4, 3, 2, 1]

// Slice: Ein Teil des Arrays extrahieren
const sliced = numbers.slice(1, 3);
console.log(sliced); // [2, 3]

// Splice: Elemente aus dem Array entfernen oder ersetzen
const modifiedNumbers = [...numbers];
modifiedNumbers.splice(2, 1, 99); // Entfernt das dritte Element und fügt 99 ein
console.log(modifiedNumbers); // [1, 2, 99, 4, 5]

// 2. Maps verarbeiten
const userMap = new Map<number, string>();
userMap.set(1, 'Alice');
userMap.set(2, 'Bob');

// Alle Einträge ausgeben
userMap.forEach((name, id) => console.log(`${id}: ${name}`));

// Alle Schlüssel als Array speichern
const ids = Array.from(userMap.keys());
console.log(ids); // [1, 2]

// Alle Werte als Array speichern
const names = Array.from(userMap.values());
console.log(names); // ["Alice", "Bob"]

// 3. Sets verarbeiten
const uniqueNumbers = new Set([1, 2, 3, 4, 5, 2, 3]);
console.log(uniqueNumbers); // Set(5) {1, 2, 3, 4, 5}

// Prüfen, ob eine Zahl existiert
console.log(uniqueNumbers.has(3)); // true

// Set in ein Array umwandeln
const numArray = Array.from(uniqueNumbers);
console.log(numArray); // [1, 2, 3, 4, 5]
