solution
This commit is contained in:
parent
55fe2ce916
commit
0fba708d7a
77
src/04-collections/KATA/solution.ts
Normal file
77
src/04-collections/KATA/solution.ts
Normal file
@ -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<number, string> {
|
||||
return new Map([
|
||||
[1, 'Alice'],
|
||||
[2, 'Bob'],
|
||||
]);
|
||||
}
|
||||
|
||||
export function getUserById(
|
||||
users: Map<number, string>,
|
||||
id: number
|
||||
): string | undefined {
|
||||
return users.get(id);
|
||||
}
|
||||
|
||||
export function getAllUserIds(users: Map<number, string>): number[] {
|
||||
return Array.from(users.keys());
|
||||
}
|
||||
|
||||
export function getAllUserNames(users: Map<number, string>): string[] {
|
||||
return Array.from(users.values());
|
||||
}
|
||||
|
||||
// 3. Sets: Implementiere die folgenden Funktionen
|
||||
export function createUniqueNumberSet(numbers: number[]): Set<number> {
|
||||
return new Set(numbers);
|
||||
}
|
||||
|
||||
export function isNumberInSet(set: Set<number>, value: number): boolean {
|
||||
return set.has(value);
|
||||
}
|
||||
|
||||
export function convertSetToArray(set: Set<number>): number[] {
|
||||
return Array.from(set);
|
||||
}
|
||||
69
src/04-collections/collection-methods.ts
Normal file
69
src/04-collections/collection-methods.ts
Normal file
@ -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<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]
|
||||
Loading…
x
Reference in New Issue
Block a user