Cuplikan Inventaris
Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 55 dari 56.
Laporan inventaris yang menguji hash, rangkaian Enumerable, group_by, dan sedikit pemformatan.
Tantangan
SedangArray inventory diberikan. Setiap item adalah hash dengan :name, :category, :qty, dan :price.
Cetak empat baris:
- Total nilai inventaris untuk semua item (
qty * price, dijumlahkan), dicetak sebagai bilangan bulat. - Kategori dengan jumlah item terbanyak, dalam format
Top category: <name> (<count>). Jika jumlahnya sama, urutkan berdasarkan nama kategori secara alfabetis. - Nama item yang kehabisan stok (
qty == 0), diurutkan secara alfabetis dan digabungkan dengan,. Jika tidak ada, cetak(none). - Nama 3 item termahal berdasarkan harga satuan, dari harga tertinggi, dan digabungkan dengan
,. Jika harganya sama, urutkan berdasarkan nama secara alfabetis.
Untuk inventaris default, output-nya adalah:
232
Top category: food (3)
milk
chair, lamp, milkCoba sendiri
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: tampilkan nilai total, kategori teratas, nama barang yang stoknya habis, dan 3 barang dengan harga tertinggi
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Ringkasan Method StringInterpolasi StringMenelusuri StringMemisahkan dan MenggabungkanRekap: Perangkai String4Block, Proc, dan Lambda
Apa Itu Block?do..end vs Kurung KurawalKata Kunci yieldParameter BlockProc dan LambdaRangkuman, Iterator Kustom5Andalan Enumerable
Select dan RejectMerangkai MapReduce / Injectcount, all?, any?, none?group_by dan partitionsort_by, min_by, max_byRekap: Alur Data8Pengambilan Keputusan Lanjutan
Case dengan class & regexwhen dengan Banyak NilaiOperator Ternaryif / unless SebarisUlasan, Pengklasifikasi NilaiLatihan sendiri: Compiler Ruby online