diff --git a/src/04-collections/KATA/solution.ts b/src/04-collections/KATA/solution.ts new file mode 100644 index 0000000..f42b56b --- /dev/null +++ b/src/04-collections/KATA/solution.ts @@ -0,0 +1,77 @@ +// 1. Arrays: Implementiere die folgenden Funktionen +export function squareNumbers(numbers: number[]): number[] { + return numbers.map((num) => num * num); +} + +export function filterEvenNumbers(numbers: number[]): number[] { + return numbers.filter((num) => num % 2 === 0); +} + +export function sumNumbers(numbers: number[]): number { + return numbers.reduce((acc, num) => acc + num, 0); +} + +export function findFirstGreaterThan( + numbers: number[], + limit: number +): number | undefined { + return numbers.find((num) => num > limit); +} + +export function sortNumbersDescending(numbers: number[]): number[] { + return [...numbers].sort((a, b) => b - a); +} + +export function sliceNumbers( + numbers: number[], + start: number, + end: number +): number[] { + return numbers.slice(start, end); +} + +export function modifyArray( + numbers: number[], + index: number, + newValue: number +): number[] { + const modified = [...numbers]; + modified.splice(index, 1, newValue); + return modified; +} + +// 2. Maps: Implementiere die folgenden Funktionen +export function createUserMap(): Map { + return new Map([ + [1, 'Alice'], + [2, 'Bob'], + ]); +} + +export function getUserById( + users: Map, + id: number +): string | undefined { + return users.get(id); +} + +export function getAllUserIds(users: Map): number[] { + return Array.from(users.keys()); +} + +export function getAllUserNames(users: Map): string[] { + return Array.from(users.values()); +} + +// 3. Sets: Implementiere die folgenden Funktionen +export function createUniqueNumberSet(numbers: number[]): Set { + return new Set(numbers); +} + +export function isNumberInSet(set: Set, value: number): boolean { + return set.has(value); +} + +export function convertSetToArray(set: Set): number[] { + return Array.from(set); +} diff --git a/src/04-collections/collection-methods.ts b/src/04-collections/collection-methods.ts new file mode 100644 index 0000000..2d954fc --- /dev/null +++ b/src/04-collections/collection-methods.ts @@ -0,0 +1,69 @@ +// 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(); +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]