Menu
CoddyTech

Ôn tập: quy trình dữ liệu

Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 27 trên 56.

Một thử thách đưa một tập dữ liệu nhỏ qua chuỗi phương thức Enumerable, giống như cách bạn sẽ viết Ruby trong thực tế.

challenge icon

Thử thách

Trung bình

Mảng orders đã cho, mỗi phần tử là một hash có :product, :qty và :price. In ra ba dòng:

  1. Tổng doanh thu từ tất cả đơn hàng (qty * price, tính tổng). Dùng map + reduce(:+) hoặc sum { ... }.
  2. Số lượng đơn hàng có qty >= 3 (dùng count).
  3. Tên sản phẩm của đơn hàng có doanh thu cao nhất (dùng max_by).

Với mảng mặc định, đầu ra là:

59
2
milk

Tự làm thử

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: tính tổng doanh thu, đếm số đơn hàng có qty >= 3, tìm sản phẩm có doanh thu cao nhất

Tất cả bài học trong Logic và luồng xử lý

Tự luyện tập: Trình biên dịch Ruby online