Appearance
Kapitel 3: Destructuring (Destrukturierung)
3.1 Array-Destructuring
📦 Was ist Array-Destructuring?
Array-Destructuring erlaubt es dir, Werte aus einem Array in einzelne Variablen zu extrahieren.
javascript
// ❌ Alte Methode (ES5)
var colors = ["rot", "grün", "blau"];
var first = colors[0];
var second = colors[1];
var third = colors[2];
// ✅ Neue Methode (ES6) - Array-Destructuring
const colors = ["rot", "grün", "blau"];
const [first, second, third] = colors;
console.log(first); // "rot"
console.log(second); // "grün"
console.log(third); // "blau"🔄 Vertauschen von Variablen (Swapping)
javascript
// ❌ Alte Methode (ES5) - mit temporärer Variable
let a = 1;
let b = 2;
let temp = a;
a = b;
b = temp;
console.log(a, b); // 2, 1
// ✅ Neue Methode (ES6) - mit Destructuring
let a = 1;
let b = 2;
[a, b] = [b, a];
console.log(a, b); // 2, 1⏭️ Überspringen von Werten
javascript
const numbers = [1, 2, 3, 4, 5];
// Nur das erste und vierte Element
const [first, , , fourth] = numbers;
console.log(first); // 1
console.log(fourth); // 4📋 Rest-Operator mit Arrays
javascript
const numbers = [1, 2, 3, 4, 5];
// Erstes Element, Rest in einem Array
const [first, ...rest] = numbers;
console.log(first); // 1
console.log(rest); // [2, 3, 4, 5]🎯 Standardwerte
javascript
const numbers = [1];
// Mit Standardwerten
const [a, b = 2, c = 3] = numbers;
console.log(a); // 1
console.log(b); // 2 (Standardwert verwendet)
console.log(c); // 3 (Standardwert verwendet)3.2 Object-Destructuring (am häufigsten verwendet)
📦 Was ist Object-Destructuring?
Object-Destructuring erlaubt es dir, Eigenschaften eines Objekts in Variablen zu extrahieren.
javascript
// ❌ Alte Methode (ES5)
var person = { name: "Max", alter: 25, stadt: "Berlin" };
var name = person.name;
var alter = person.alter;
var stadt = person.stadt;
// ✅ Neue Methode (ES6) - Object-Destructuring
const person = { name: "Max", alter: 25, stadt: "Berlin" };
const { name, alter, stadt } = person;
console.log(name); // "Max"
console.log(alter); // 25
console.log(stadt); // "Berlin"🏷️ Umbenennen von Variablen
javascript
const person = { name: "Max", alter: 25 };
// Umbenennen mit Doppelpunkt
const { name: vorname, alter: age } = person;
console.log(vorname); // "Max"
console.log(age); // 25
// console.log(name); // ❌ ReferenceError🎯 Standardwerte
javascript
const person = { name: "Max", alter: 25 };
// Mit Standardwerten
const { name, alter, stadt = "Unbekannt" } = person;
console.log(name); // "Max"
console.log(stadt); // "Unbekannt" (Standardwert verwendet)📋 Rest-Operator mit Objekten
javascript
const person = { name: "Max", alter: 25, stadt: "Berlin", land: "Deutschland" };
// name extrahieren, Rest in einem Objekt
const { name, ...rest } = person;
console.log(name); // "Max"
console.log(rest); // { alter: 25, stadt: "Berlin", land: "Deutschland" }🎯 Verschachteltes Destructuring
javascript
const person = {
name: "Max",
alter: 25,
adresse: {
stadt: "Berlin",
land: "Deutschland"
}
};
// Verschachteltes Destructuring
const { name, adresse: { stadt, land } } = person;
console.log(name); // "Max"
console.log(stadt); // "Berlin"
console.log(land); // "Deutschland"3.3 String-Destructuring
🔤 Einzelne Zeichen extrahieren
javascript
const str = "Hallo";
// String-Destructuring (wie Array)
const [a, b, c, d, e] = str;
console.log(a); // "H"
console.log(b); // "a"
console.log(c); // "l"
console.log(d); // "l"
console.log(e); // "o"📏 Länge eines Strings
javascript
const { length } = "Hallo";
console.log(length); // 53.4 Funktionsparameter-Destructuring
📦 Parameter-Destructuring bei Objekten
javascript
// ❌ Alte Methode (ES5)
function createPerson(options) {
var name = options.name;
var alter = options.alter;
var stadt = options.stadt;
return `${name} (${alter}) aus ${stadt}`;
}
// ✅ Neue Methode (ES6) - Parameter-Destructuring
function createPerson({ name, alter, stadt }) {
return `${name} (${alter}) aus ${stadt}`;
}
// Aufruf
const person = createPerson({ name: "Max", alter: 25, stadt: "Berlin" });
console.log(person); // "Max (25) aus Berlin"🎯 Standardwerte in Funktionsparametern
javascript
function createPerson({ name, alter, stadt = "Unbekannt" } = {}) {
return `${name} (${alter}) aus ${stadt}`;
}
// Aufruf mit fehlenden Parametern
console.log(createPerson({ name: "Max", alter: 25 }));
// "Max (25) aus Unbekannt"
console.log(createPerson({}));
// "undefined (undefined) aus Unbekannt"
console.log(createPerson());
// "undefined (undefined) aus Unbekannt"📦 Parameter-Destructuring bei Arrays
javascript
function sum([a, b, c]) {
return a + b + c;
}
console.log(sum([1, 2, 3])); // 63.5 Standardwerte setzen
🎯 Standardwerte bei Array-Destructuring
javascript
const numbers = [1];
// Mit Standardwerten
const [a = 10, b = 20, c = 30] = numbers;
console.log(a); // 1
console.log(b); // 20 (Standardwert)
console.log(c); // 30 (Standardwert)🎯 Standardwerte bei Object-Destructuring
javascript
const person = { name: "Max" };
// Mit Standardwerten
const { name, alter = 25, stadt = "Berlin" } = person;
console.log(name); // "Max"
console.log(alter); // 25 (Standardwert)
console.log(stadt); // "Berlin" (Standardwert)🎯 Standardwerte in Funktionsparametern
javascript
function greet({ name = "Gast", alter = "?" } = {}) {
return `Hallo ${name} (${alter})`;
}
console.log(greet({ name: "Max" })); // "Hallo Max (?)"
console.log(greet({})); // "Hallo Gast (?)"
console.log(greet()); // "Hallo Gast (?)"3.6 Praxisszenario: API-Daten schnell abrufen
🌐 API-Antwort verarbeiten
javascript
// Angenommen, eine API gibt folgendes zurück:
const apiResponse = {
status: 200,
data: {
user: {
id: 1,
name: "Max Mustermann",
email: "max@example.com",
address: {
city: "Berlin",
country: "Deutschland"
}
}
}
};
// ✅ Destructuring - Daten extrahieren
const { status, data: { user: { name, email, address: { city } } } } = apiResponse;
console.log(status); // 200
console.log(name); // "Max Mustermann"
console.log(email); // "max@example.com"
console.log(city); // "Berlin"📋 Array von Objekten verarbeiten
javascript
const users = [
{ id: 1, name: "Max", aktiv: true },
{ id: 2, name: "Erika", aktiv: false },
{ id: 3, name: "Julia", aktiv: true }
];
// ✅ Destructuring in Schleife
for (const { id, name, aktiv } of users) {
console.log(`User ${id}: ${name} (Aktiv: ${aktiv})`);
}
// Ausgabe:
// User 1: Max (Aktiv: true)
// User 2: Erika (Aktiv: false)
// User 3: Julia (Aktiv: true)🎯 Konfigurationsobjekte verarbeiten
javascript
function fetchData(url, options = {}) {
// Standardwerte mit Destructuring
const {
method = "GET",
headers = {},
timeout = 5000,
retries = 3
} = options;
console.log(`Fetching ${url} with method ${method}`);
console.log(`Timeout: ${timeout}ms, Retries: ${retries}`);
// ... API-Aufruf
}
// Aufruf
fetchData("https://api.example.com/users", {
method: "POST",
timeout: 10000
});
// Fetching https://api.example.com/users with method POST
// Timeout: 10000ms, Retries: 3🎉 Zusammenfassung
In diesem Kapitel hast du gelernt:
- ✅ Array-Destructuring (Werte extrahieren, vertauschen, Rest-Operator)
- ✅ Object-Destructuring (am häufigsten verwendet, Umbenennen, Standardwerte)
- ✅ String-Destructuring
- ✅ Funktionsparameter-Destructuring
- ✅ Standardwerte setzen
- ✅ Praxisanwendung (API-Daten verarbeiten)
📝 Übung
Array-Destructuring:
javascriptconst colors = ["rot", "grün", "blau", "gelb"]; // Extrahiere das erste und letzte ElementObject-Destructuring:
javascriptconst person = { name: "Max", alter: 25, stadt: "Berlin" }; // Extrahiere 'name' und 'stadt', benenne 'stadt' in 'city' umFunktionsparameter-Destructuring:
javascript// Erstelle eine Funktion 'describeUser', die ein Objekt mit 'name' und 'alter' akzeptiert // Verwende Destructuring im Funktionsparameter
➡️ Nächstes Kapitel
In Kapitel 4 lernen wir Spread-Operator und Rest-Parameter (...) - mächtige Werkzeuge zum Zusammenführen und Trennen von Arrays/Objekten!
