まとめ:データパイプライン
CoddyのRubyジャーニー「ロジックとフロー」セクションの一部 — レッスン 27/56。
実際のRubyプログラミングのように、小さなデータセットを一連のEnumerableメソッドで処理する課題です。
チャレンジ
中級配列 orders が与えられています。各要素は :product、:qty、:price を持つハッシュです。次の3行を出力してください:
- すべての注文の総売上(
qty * priceの合計)。map+reduce(:+)、またはsum { ... }を使用してください。 qty >= 3の注文数(countを使用)。- 最も売上が高い注文の商品名(
max_byを使用)。
デフォルトの配列の場合、出力は以下のようになります:
59
2
milk自分で試してみよう
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: 総収益、数量が3以上の注文数、最高収益の製品
ロジックとフローのすべてのレッスン
5Enumerable の強力な機能
Select と RejectMap のメソッドチェーンReduce / Injectcount, all?, any?, none?group_by と partitionsort_by, min_by, max_byまとめ:データパイプライン