Menu
Coddy logo textTech

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:

  1. accumulator: Akkumuliert die Rückgabewerte des Callbacks (stellen Sie sich dies als die laufende Summe vor)
  1. currentValue: Das aktuelle Element, das im array verarbeitet wird
  1. currentIndex: (optional) Der Index des aktuellen Elements
  1. array: (optional) Das Array, auf dem reduce() aufgerufen wurde
  1. 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); // 15

Schritt-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: 10
challenge icon

Aufgabe

Einfach

Erstelle 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:

  1. Die Gesamtkosten aller Artikel berechnen
  2. Einen Rabatt anwenden: - Wenn die Summe über 100 liegt, wende 10% Rabatt an
  3. Wenn die Summe über 50, aber kleiner oder gleich 100 ist, wende 5% Rabatt an
  4. Kein Rabatt für Gesamtsummen von 50 oder weniger.

Gib ein Objekt zurück, das Folgendes enthält:

  • originalTotal: die Summe vor dem Rabatt
  • discount: der gesparte Betrag
  • finalTotal: 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
    };
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-JavaScript-Compiler