Menu
Coddy logo textTech

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:

  1. accumulator: Sammelt die Rückgabewerte des Callbacks (stell es dir als 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