Arrays und Objekte
Arrays und Objekte sind zwei fundamentale Datenstrukturen in JavaScript, mit denen Sie komplexe Daten speichern und verwalten können. In diesem Kapitel lernen Sie, wie Sie mit diesen Strukturen arbeiten, um Ihre Programme effizienter und leistungsfähiger zu gestalten.
Ein Array ist eine geordnete Liste von Werten, die über einen Index zugänglich sind. Arrays können beliebige Datentypen enthalten, sogar eine Mischung verschiedener Typen.
Array erstellen
Abschnitt betitelt „Array erstellen“// Leeres Arraylet leeresArray = [];
// Array mit Wertenlet zahlen = [1, 2, 3, 4, 5];let früchte = ["Apfel", "Banane", "Orange"];let gemischt = [1, "Hallo", true, null, { name: "Max" }];Auf Array-Elemente zugreifen
Abschnitt betitelt „Auf Array-Elemente zugreifen“Arrays in JavaScript sind nullbasiert - der erste Index ist 0:
let früchte = ["Apfel", "Banane", "Orange", "Mango"];
console.log(früchte[0]); // Ausgabe: Apfelconsole.log(früchte[2]); // Ausgabe: OrangeArrays ändern
Abschnitt betitelt „Arrays ändern“Sie können Elemente eines Arrays ändern, indem Sie neue Werte zuweisen:
let früchte = ["Apfel", "Banane", "Orange"];
früchte[1] = "Kiwi";console.log(früchte); // Ausgabe: ["Apfel", "Kiwi", "Orange"]Array-Länge
Abschnitt betitelt „Array-Länge“Die Eigenschaft length gibt die Anzahl der Elemente im Array zurück:
let früchte = ["Apfel", "Banane", "Orange"];console.log(früchte.length); // Ausgabe: 3Grundlegende Array-Methoden
Abschnitt betitelt „Grundlegende Array-Methoden“JavaScript bietet viele nützliche Methoden für die Arbeit mit Arrays:
Elemente hinzufügen
Abschnitt betitelt „Elemente hinzufügen“let früchte = ["Apfel", "Banane"];
// Am Ende hinzufügenfrüchte.push("Orange");console.log(früchte); // ["Apfel", "Banane", "Orange"]
// Am Anfang hinzufügenfrüchte.unshift("Erdbeere");console.log(früchte); // ["Erdbeere", "Apfel", "Banane", "Orange"]Elemente entfernen
Abschnitt betitelt „Elemente entfernen“let früchte = ["Apfel", "Banane", "Orange", "Mango"];
// Letztes Element entfernenlet letztesFrucht = früchte.pop();console.log(letztesFrucht); // Mangoconsole.log(früchte); // ["Apfel", "Banane", "Orange"]
// Erstes Element entfernenlet erstesFrucht = früchte.shift();console.log(erstesFrucht); // Apfelconsole.log(früchte); // ["Banane", "Orange"]Arrays kombinieren
Abschnitt betitelt „Arrays kombinieren“let früchte1 = ["Apfel", "Banane"];let früchte2 = ["Orange", "Mango"];
// Arrays verbindenlet alleFrüchte = früchte1.concat(früchte2);console.log(alleFrüchte); // ["Apfel", "Banane", "Orange", "Mango"]Teile eines Arrays extrahieren
Abschnitt betitelt „Teile eines Arrays extrahieren“Die slice()-Methode erstellt eine Kopie eines Teils des Arrays:
let früchte = ["Apfel", "Banane", "Orange", "Mango", "Kiwi"];
// Extrahiere von Index 1 bis Index 3 (exklusive)let ausschnitt = früchte.slice(1, 3);console.log(ausschnitt); // ["Banane", "Orange"]Elemente einfügen oder entfernen an beliebiger Position
Abschnitt betitelt „Elemente einfügen oder entfernen an beliebiger Position“Die splice()-Methode kann Elemente entfernen und/oder neue Elemente einfügen:
let früchte = ["Apfel", "Banane", "Orange", "Mango"];
// Entferne 2 Elemente ab Index 1 und füge neue Elemente einlet entfernteFrüchte = früchte.splice(1, 2, "Kiwi", "Erdbeere");console.log(entfernteFrüchte); // ["Banane", "Orange"]console.log(früchte); // ["Apfel", "Kiwi", "Erdbeere", "Mango"]Arrays durchlaufen
Abschnitt betitelt „Arrays durchlaufen“Es gibt verschiedene Möglichkeiten, durch ein Array zu iterieren:
Mit einer for-Schleife
Abschnitt betitelt „Mit einer for-Schleife“let früchte = ["Apfel", "Banane", "Orange", "Mango"];
for (let i = 0; i < früchte.length; i++) { console.log(früchte[i]);}Mit einer for…of-Schleife
Abschnitt betitelt „Mit einer for…of-Schleife“let früchte = ["Apfel", "Banane", "Orange", "Mango"];
for (let frucht of früchte) { console.log(frucht);}Mit der forEach-Methode
Abschnitt betitelt „Mit der forEach-Methode“let früchte = ["Apfel", "Banane", "Orange", "Mango"];
früchte.forEach(function (frucht, index) { console.log(`Frucht ${index + 1}: ${frucht}`);});
// Mit Pfeilfunktionfrüchte.forEach((frucht, index) => console.log(`Frucht ${index + 1}: ${frucht}`));Weitere nützliche Array-Methoden
Abschnitt betitelt „Weitere nützliche Array-Methoden“Erstellt ein neues Array mit den Ergebnissen einer Funktion für jedes Element:
let zahlen = [1, 2, 3, 4];let quadrierte = zahlen.map((zahl) => zahl * zahl);console.log(quadrierte); // [1, 4, 9, 16]filter()
Abschnitt betitelt „filter()“Erstellt ein neues Array mit allen Elementen, die eine Bedingung erfüllen:
let zahlen = [1, 2, 3, 4, 5, 6];let geradeZahlen = zahlen.filter((zahl) => zahl % 2 === 0);console.log(geradeZahlen); // [2, 4, 6]Gibt das erste Element zurück, das eine Bedingung erfüllt:
let früchte = ["Apfel", "Banane", "Orange", "Mango"];let gefunden = früchte.find((frucht) => frucht.startsWith("O"));console.log(gefunden); // Orangesome() und every()
Abschnitt betitelt „some() und every()“Prüfen, ob einige/alle Elemente eine Bedingung erfüllen:
let zahlen = [1, 2, 3, 4, 5];let hatGerade = zahlen.some((zahl) => zahl % 2 === 0);console.log(hatGerade); // true
let alleGerade = zahlen.every((zahl) => zahl % 2 === 0);console.log(alleGerade); // falseSortiert die Elemente eines Arrays:
let früchte = ["Orange", "Apfel", "Banane", "Mango"];früchte.sort();console.log(früchte); // ["Apfel", "Banane", "Mango", "Orange"]
// Bei Zahlen muss eine Vergleichsfunktion übergeben werdenlet zahlen = [10, 5, 40, 25];zahlen.sort((a, b) => a - b);console.log(zahlen); // [5, 10, 25, 40]Objekte
Abschnitt betitelt „Objekte“Objekte in JavaScript sind Sammlungen von Schlüssel-Wert-Paaren und ermöglichen das Speichern strukturierter Daten.
Objekt erstellen
Abschnitt betitelt „Objekt erstellen“// Leeres Objektlet leeresObjekt = {};
// Objekt mit Eigenschaftenlet person = { name: "Max Mustermann", alter: 30, beruf: "Softwareentwickler", istStudent: false,};Auf Objekteigenschaften zugreifen
Abschnitt betitelt „Auf Objekteigenschaften zugreifen“Es gibt zwei Möglichkeiten, auf Eigenschaften zuzugreifen:
let person = { name: "Max Mustermann", alter: 30,};
// Punktnotationconsole.log(person.name); // Max Mustermann
// Klammernotation (nützlich für dynamische Eigenschaftsnamen)console.log(person["alter"]); // 30
let eigenschaft = "name";console.log(person[eigenschaft]); // Max MustermannEigenschaften ändern und hinzufügen
Abschnitt betitelt „Eigenschaften ändern und hinzufügen“let person = { name: "Max Mustermann", alter: 30,};
// Eigenschaft ändernperson.name = "Maria Musterfrau";console.log(person.name); // Maria Musterfrau
// Neue Eigenschaft hinzufügenperson.beruf = "Lehrerin";console.log(person); // {name: "Maria Musterfrau", alter: 30, beruf: "Lehrerin"}Eigenschaften entfernen
Abschnitt betitelt „Eigenschaften entfernen“let person = { name: "Max Mustermann", alter: 30, beruf: "Softwareentwickler",};
delete person.beruf;console.log(person); // {name: "Max Mustermann", alter: 30}Verschachtelte Objekte
Abschnitt betitelt „Verschachtelte Objekte“Objekte können andere Objekte als Werte enthalten:
let person = { name: "Max Mustermann", alter: 30, adresse: { strasse: "Musterstrasse 123", plz: "12345", stadt: "Musterstadt", }, hobbys: ["Lesen", "Programmieren", "Wandern"],};
console.log(person.adresse.stadt); // Musterstadtconsole.log(person.hobbys[1]); // ProgrammierenMethoden in Objekten
Abschnitt betitelt „Methoden in Objekten“Objekte können auch Funktionen als Eigenschaften haben, die dann Methoden genannt werden:
let person = { name: "Max Mustermann", alter: 30, vorstellen: function () { return `Hallo, ich bin ${this.name} und bin ${this.alter} Jahre alt.`; }, // Kurzschreibweise grüssen() { return `Hallo!`; },};
console.log(person.vorstellen()); // Hallo, ich bin Max Mustermann und bin 30 Jahre alt.console.log(person.grüssen()); // Hallo!Objekte durchlaufen
Abschnitt betitelt „Objekte durchlaufen“Mit der for...in-Schleife können Sie durch alle Eigenschaften eines Objekts iterieren:
let person = { name: "Max Mustermann", alter: 30, beruf: "Softwareentwickler",};
for (let eigenschaft in person) { console.log(`${eigenschaft}: ${person[eigenschaft]}`);}// Ausgabe:// name: Max Mustermann// alter: 30// beruf: SoftwareentwicklerNützliche Objekt-Methoden
Abschnitt betitelt „Nützliche Objekt-Methoden“Object.keys()
Abschnitt betitelt „Object.keys()“Gibt ein Array mit allen Eigenschaftsnamen eines Objekts zurück:
let person = { name: "Max Mustermann", alter: 30, beruf: "Softwareentwickler",};
let eigenschaften = Object.keys(person);console.log(eigenschaften); // ["name", "alter", "beruf"]Object.values()
Abschnitt betitelt „Object.values()“Gibt ein Array mit allen Werten eines Objekts zurück:
let person = { name: "Max Mustermann", alter: 30, beruf: "Softwareentwickler",};
let werte = Object.values(person);console.log(werte); // ["Max Mustermann", 30, "Softwareentwickler"]Object.entries()
Abschnitt betitelt „Object.entries()“Gibt ein verschachteltes Array mit Schlüssel-Wert-Paaren zurück:
let person = { name: "Max Mustermann", alter: 30,};
let einträge = Object.entries(person);console.log(einträge); // [["name", "Max Mustermann"], ["alter", 30]]Arrays von Objekten
Abschnitt betitelt „Arrays von Objekten“Eine häufige Datenstruktur in JavaScript sind Arrays von Objekten, besonders bei der Arbeit mit Datenlisten:
let benutzer = [ { id: 1, name: "Max Mustermann", alter: 30, email: "max@beispiel.de", }, { id: 2, name: "Maria Musterfrau", alter: 28, email: "maria@beispiel.de", }, { id: 3, name: "Tom Test", alter: 35, email: "tom@beispiel.de", },];
// Alle Namen ausgebenbenutzer.forEach((person) => console.log(person.name));
// Nur Personen über 30 filternlet über30 = benutzer.filter((person) => person.alter > 30);console.log(über30);
// Person mit id 2 findenlet gesuchte = benutzer.find((person) => person.id === 2);console.log(gesuchte);Übung: Arrays und Objekte in der Praxis
Abschnitt betitelt „Übung: Arrays und Objekte in der Praxis“Zusammenfassung
Abschnitt betitelt „Zusammenfassung“- Arrays sind geordnete Listen von Werten, auf die über einen Index zugegriffen werden kann
- Objekte sind Sammlungen von Schlüssel-Wert-Paaren für strukturierte Daten
- Arrays und Objekte können verschachtelt werden, um komplexe Datenstrukturen zu erstellen
- JavaScript bietet viele nützliche Methoden für die Arbeit mit Arrays und Objekten
- Arrays von Objekten sind eine häufige Datenstruktur für Listen strukturierter Daten
Arrays und Objekte sind grundlegende Bausteine in JavaScript und werden in fast jedem Projekt verwendet. Mit dem Wissen aus diesem Kapitel können Sie komplexe Datenstrukturen erstellen und effizient mit ihnen arbeiten.
Im nächsten Kapitel werden wir uns mit der Fehlerbehandlung in JavaScript beschäftigen - einem wichtigen Thema, um robuste Programme zu schreiben.