Die Reduce-Methode
Teil des Abschnitts Logik & Ablauf der JavaScript-Journey von Coddy. Lektion 54 von 65.
Die Methode reduce() ermöglicht es dir, ein Array auf einen einzelnen Wert zu „reduzieren“, indem für jedes Element des Arrays eine bereitgestellte Funktion ausgeführt wird. Dieser einzelne Wert kann eine Zahl, eine Zeichenkette, ein Objekt oder sogar ein weiteres Array sein.
Hier ist die Syntax von reduce:
array.reduce(function(accumulator, currentValue, currentIndex, array) {
// den aktualisierten Akkumulatorwert zurückgeben
}, initialValue);Schlüsselkomponenten:
- accumulator: Sammelt die Rückgabewerte des Callbacks (stell es dir als laufende Summe vor)
- currentValue: Das aktuelle Element, das im Array verarbeitet wird
- currentIndex: (optional) Der Index des aktuellen Elements
- array: (optional) Das Array, auf dem reduce() aufgerufen wurde
- initialValue: (optional) Ein Wert, der als erstes Argument beim ersten Aufruf der Callback-Funktion verwendet wird
Zum Beispiel – Summe von Zahlen:
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // 15Schritt-für-Schritt-Funktionsweise:
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, curr) => {
console.log(`Accumulator: ${acc}, Current Value: ${curr}`);
return acc + curr;
}, 0);
// Ausgabe:
// Akkumulator: 0, Aktueller Wert: 1
// Akkumulator: 1, Aktueller Wert: 2
// Akkumulator: 3, Aktueller Wert: 3
// Akkumulator: 6, Aktueller Wert: 4
// Endergebnis: 10Aufgabe
EinfachErstelle eine Funktion namens calculateGroceryTotal, die ein Array von Objekten akzeptiert, welche Lebensmittel-Artikel darstellen.
Jedes Objekt hat zwei Eigenschaften:
name: String (Name des Artikels)price: Zahl (Preis des Artikels)
Die Funktion sollte:
- Die Gesamtkosten aller Artikel berechnen
- Einen Rabatt anwenden: - Wenn die Summe über 100 liegt, wende 10% Rabatt an
- Wenn die Summe über 50, aber kleiner oder gleich 100 ist, wende 5% Rabatt an
- Kein Rabatt für Gesamtsummen von 50 oder weniger.
Gib ein Objekt zurück, das Folgendes enthält:
originalTotal: die Summe vor dem Rabattdiscount: der gesparte BetragfinalTotal: der Endbetrag nach dem Rabatt
Probier es selbst
function calculateGroceryTotal(items) {
// Schreibe den Code hier
return {
originalTotal: Math.round(originalTotal * 100) / 100, // Auf 2 Dezimalstellen runden
discount: Math.round(discount * 100) / 100,
finalTotal: Math.round(finalTotal * 100) / 100
};
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Strings im Detail
Grundlagen von StringsStrings durchlaufenTemplate LiteralsString-MethodenRückblick – String-Weber4JSON Teil 2
JSON durchlaufenVerschachteltes JSONOptionale Verkettung in JSONFlache und tiefe KopieWiederholung – FahrradgeschäftWiederholung – Sonnensystem7Bibliotheksverwaltungssystem
ProjektübersichtBücher hinzufügen2Mehrdimensionale Arrays
Grundlagen von 2D-ArraysZugriff auf Elemente von 2D-ArraysVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysMatrixaddition und -subtraktionZackige Arrays3D-Arrays und darüber hinausHäufige Muster bei 2D-ArraysWiederholung – Alles über Arrays5Mengen – Teil 1
Was ist eine Menge?Mengen durchlaufenEin Element hinzufügenEin Element entfernenPrüfen, ob ein Element vorhanden istGröße und LeerstatusKopieren und LeerenRückblick – Grundlagen von Mengen8Interessante Themen zu Arrays
Destrukturierung von ArraysSpread-Syntax in ArraysDünn besetzte ArraysRückblick – Workshop zu Arrays3JSON Teil 1
Was ist JSON?Prüfen, ob ein Schlüssel vorhanden istObjektmethodenSpread-Operator Teil 1Spread-Operator Teil 2Schlüssel entfernenRückblick – JSON-Schlüssel bearbeitenÜbe selbstständig: Online-JavaScript-Compiler