振り返り - データパイプライン
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振り返り - データパイプライン自分で練習してみよう: Rubyオンラインコンパイラ