Zusammenfassung – Datenpipeline
Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy. Lektion 27 von 56.
Eine Herausforderung, die einen kleinen Datensatz durch eine Kette von Enumerable-Methoden leitet, so wie Sie Ruby in der Praxis schreiben werden.
Aufgabe
MittelDas Array orders ist gegeben, jedes Element ist ein Hash mit :product, :qty und :price. Gib drei Zeilen aus:
- Der Gesamtumsatz über alle Bestellungen (
qty * price, summiert). Verwendemap+reduce(:+)odersum { ... }. - Die Anzahl der Bestellungen mit
qty >= 3(verwendecount). - Der Produktname der Bestellung mit dem höchsten Umsatz (verwende
max_by).
Für das Standard-Array lautet die Ausgabe:
59
2
milkProbier es selbst
orders = [
{ product: "apple", qty: 4, price: 2 },
{ product: "bread", qty: 1, price: 3 },
{ product: "milk", qty: 6, price: 4 },
{ product: "cheese", qty: 2, price: 12 }
]
# TODO: Gesamtumsatz, Anzahl der Bestellungen mit Menge >= 3, Produkt mit dem höchsten Umsatz
Alle Lektionen in Logik & Programmfluss
1Strings im Detail
Überblick über String-MethodenString-InterpolationStrings durchlaufenSplitten und VerbindenRückblick – String Weaver4Blocks, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas Schlüsselwort yieldBlock-ParameterProcs und LambdasRückblick – Benutzerdefinierter Iterator2Bereiche
Was ist ein Bereich?BereichsmethodenBereiche in Case / WhenWiederholung – Übung zu Bereichen5Das Enumerable-Kraftpaket
Select und RejectMap verkettenReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Datenpipeline8Fortgeschrittene Entscheidungsfindung
Case mit Klassen & Regexwhen mit mehreren WertenTernärer OperatorInline-if / unlessRückblick – NotenklassifiziererÜbe selbstständig: Online-Ruby-Compiler