Um Daten effektiv zu verwalten, bietet JavaScript verschiedene Datenstrukturen (Collections). Während Arrays die am häufigsten genutzten Collections sind, gibt es für spezielle Anwendungsfälle auch Maps und Sets, die dir das Leben deutlich erleichtern können.
Arrays
Ein Array ist eine geordnete Liste von Werten. Jeder Wert hat einen numerischen Index, beginnend bei 0.
Erstellung und Zugriff
const fruits = ["Apfel", "Banane", "Kirsche"];
console.log(fruits[0]); // "Apfel"
console.log(fruits.length); // 3
// Werte ändern
fruits[1] = "Mango";
console.log(fruits); // ["Apfel", "Mango", "Kirsche"]
Wichtige Array-Methoden
JavaScript bietet eine Fülle von Methoden, um mit Arrays zu arbeiten:
const numbers = [1, 2, 3, 4, 5];
// Hinzufügen/Entfernen
numbers.push(6); // am Ende hinzufügen: [1, 2, 3, 4, 5, 6]
numbers.pop(); // am Ende entfernen: [1, 2, 3, 4, 5]
numbers.unshift(0); // am Anfang hinzufügen: [0, 1, 2, 3, 4, 5]
numbers.shift(); // am Anfang entfernen: [1, 2, 3, 4, 5]
// Transformation und Suche
const doubled = numbers.map(n => n * 2); // [2, 4, 6, 8, 10]
const evens = numbers.filter(n => n % 2 === 0); // [2, 4]
const sum = numbers.reduce((acc, n) => acc + n, 0); // 15
Map und WeakMap
Eine Map ist eine Sammlung von Schlüssel-Wert-Paaren. Im Gegensatz zu normalen Objekten können bei einer Map die Schlüssel beliebige Datentypen sein (sogar andere Objekte!).
const userRoles = new Map();
const user1 = { name: "Max" };
const user2 = { name: "Anna" };
userRoles.set(user1, "Admin");
userRoles.set(user2, "Editor");
console.log(userRoles.get(user1)); // "Admin"
console.log(userRoles.size); // 2
WeakMap ist eine spezielle Variante, bei der die Schlüssel Objekte sein müssen und “schwach” referenziert werden. Das bedeutet, wenn das Objekt sonst nirgendwo mehr referenziert wird, kann es vom Garbage Collector gelöscht werden.
Set und WeakSet
Ein Set ist eine Sammlung von eindeutigen Werten. Ein Wert kann in einem Set nur einmal vorkommen.
const uniqueNumbers = new Set([1, 2, 2, 3, 4, 4, 5]);
console.log(uniqueNumbers); // Set { 1, 2, 3, 4, 5 } (Duplikate entfernt!)
console.log(uniqueNumbers.has(3)); // true
uniqueNumbers.add(6);
uniqueNumbers.delete(1);
WeakSet funktioniert analog zu WeakMap nur für Objekte und mit schwachen Referenzen.
JSON (JavaScript Object Notation)
JSON ist das Standardformat für den Datenaustausch im Web. Es sieht aus wie JavaScript-Objekte/Arrays, ist aber technisch gesehen ein String.
const user = { name: "Tom", age: 25 };
// Objekt zu JSON-String
const jsonString = JSON.stringify(user);
console.log(jsonString); // '{"name":"Tom","age":25}'
// JSON-String zurück zu Objekt
const parsedUser = JSON.parse(jsonString);
console.log(parsedUser.name); // "Tom"
Zusammenfassung
- Arrays sind ideal für geordnete Listen.
- Maps sind mächtiger als Objekte, wenn es um Schlüssel-Wert-Paare geht (besonders bei nicht-String Schlüsseln).
- Sets sind perfekt, um Duplikate zu vermeiden und schnell zu prüfen, ob ein Wert existiert.
- JSON ist das Format, mit dem du Daten an Server sendest oder von ihnen empfängst.
Weiterführende Links: