Zusammenfassung – Data Pipeline
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
String-Methoden im ÜberblickString-InterpolationIterieren über StringsSplit und JoinRückblick – String Weaver4Blöcke, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas yield-SchlüsselwortBlock-ParameterProcs und LambdasZusammenfassung – Eigener Iterator7Hashes Teil 2
Hash.new mit StandardwertenIterieren über HashesVerschachtelte HashesZusammenführen und TransformierenRückblick – Häufigkeitszähler10Projekt - Studentenverwaltung
ProjektübersichtStudent hinzufügen5Enumerable-Kraftpaket
Select und RejectMap-VerkettungReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Data Pipeline8Fortgeschrittene Entscheidungslogik
Case mit Klassen & RegexMulti-Value whenTernärer OperatorInline if / unlessRückblick – Noten-Klassifizierer