Menu
Coddy logo textTech

Stan zapasów

Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 55 z 56.

Raport o stanie magazynowym, który wykorzystuje hasze, łańcuchy Enumerable, group_by i odrobinę formatowania.

challenge icon

Wyzwanie

Średni

Podano tablicę inventory. Każdy element to hash z polami :name, :category, :qty i :price.

Wypisz cztery wiersze:

  1. Łączną wartość wszystkich pozycji w magazynie (qty * price, zsumowane), jako liczbę całkowitą.
  2. Kategorię z największą liczbą pozycji, w formacie Top category: <name> (<count>). W przypadku remisu rozstrzyga alfabetyczna kolejność nazw kategorii.
  3. Nazwy pozycji niedostępnych w magazynie (qty == 0), posortowane alfabetycznie i połączone za pomocą , . Jeśli nie ma żadnych, wypisz (none).
  4. Nazwy 3 najdroższych pozycji według ceny jednostkowej, od najdroższej, połączone za pomocą , . W przypadku remisu rozstrzyga alfabetyczna kolejność nazw.

Dla domyślnej zawartości magazynu wynik to:

232
Top category: food (3)
milk
chair, lamp, milk

Spróbuj swoich sił

inventory = [
  { name: "apple",  category: "food",        qty: 10, price: 2 },
  { name: "bread",  category: "food",        qty: 4,  price: 3 },
  { name: "milk",   category: "food",        qty: 0,  price: 4 },
  { name: "chair",  category: "furniture",   qty: 2,  price: 35 },
  { name: "lamp",   category: "furniture",   qty: 5,  price: 20 },
  { name: "pencil", category: "stationery",  qty: 30, price: 1 }
]

# TODO: wypisz łączną wartość, kategorię o najwyższej wartości, nazwy produktów niedostępnych w magazynie oraz 3 najdroższe produkty
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Ruby online