Die Reduce-Methode
Teil des Abschnitts Logik & Ablauf der JavaScript-Journey von Coddy. Lektion 54 von 65.
Die `reduce()`-Methode ermöglicht es Ihnen, ein `array` auf einen einzelnen Wert zu "reduzieren", indem eine bereitgestellte `function` für jedes Element des `array` ausgeführt wird. Dieser einzelne Wert kann eine Zahl, ein String, ein Objekt oder sogar ein anderes `array` sein.
Hier ist die Syntax von reduce:
array.reduce(function(accumulator, currentValue, currentIndex, array) {
// den aktualisierten Akkumulatorwert zurückgeben
}, initialValue);Wichtige Komponenten:
- accumulator: Akkumuliert die Rückgabewerte des Callbacks (stellen Sie sich dies als die 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
String-GrundlagenÜber Strings iterierenTemplate LiteralsString-MethodenRückblick – String Weaver4JSON Teil 2
Über JSON iterierenVerschachteltes JSONJSON Optional ChainingFlache und tiefe KopieWiederholung – FahrradladenWiederholung – Sonnensystem7Bibliotheksverwaltungssystem
ProjektübersichtBücher hinzufügen2Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysRückblick – 2D-ArraysMatrix-Addition & SubtraktionJagged Arrays3D-Arrays und mehrGängige 2D-Array-MusterRückblick – Alles über Arrays5Sets Teil 1
Was ist ein Set?Iterieren über SetsEin Element hinzufügenEin Element entfernenPrüfen, ob ein Element existiertGröße und Is EmptyCopy und ClearZusammenfassung - Grundlagen von Sets8Arrays: Interessante Themen
Array-DestrukturierungSpread-Syntax in ArraysSparse ArraysWiederholung – Arrays Workshop3JSON Teil 1
Was ist JSON?Prüfen, ob Key existiertObjektmethodenDer Spread-Operator Teil 1Der Spread-Operator Teil 2Keys entfernenWiederholung – JSON-Keys manipulieren6Mengen Teil 2
Mathe - Vereinigung von MengenMathe - Schnittmenge von MengenMathe - Differenz von MengenMathe - Symmetrische DifferenzTeilmengen und ObermengenWiederholung - Freunde gruppieren9Fortgeschrittene Array-Methoden
Die Join- & Split-MethodenDie Map-MethodeDie Filter-MethodeDie Reduce-MethodeVerkettung von Array-MethodenSind ForEach und Map identisch?Die Sort-MethodeDie Find- & FindIndex-MethodenZusammenfassung – Der Chain-MasterÜbe selbstständig: Online-JavaScript-Compiler