Panoramica dell'inventario
Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 55 di 56.
Un report sull’inventario che mette alla prova gli hash, le catene Enumerable, group_by e un pizzico di formattazione.
Sfida
MedioL'array inventory è fornito. Ogni elemento è un hash con :name, :category, :qty e :price.
Stampa quattro righe:
- Valore totale dell'inventario di tutti gli elementi (
qty * price, sommato), stampato come numero intero. - La categoria con il maggior numero di elementi, nel formato
Top category: <name> (<count>). In caso di parità, ordina alfabeticamente per nome della categoria. - Nomi degli elementi esauriti (
qty == 0), ordinati alfabeticamente e separati da,. Se non ce ne sono, stampa(none). - Nomi dei 3 elementi più costosi in base al prezzo unitario, dal più alto al più basso e separati da
,. In caso di parità, ordina alfabeticamente per nome.
Per l'inventario predefinito, l'output è:
232
Top category: food (3)
milk
chair, lamp, milkProvalo tu
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: stampa il valore totale, la categoria principale, i nomi degli articoli esauriti e i primi 3 per prezzo
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Panoramica dei metodi delle stringheInterpolazione di stringheIterare sulle stringheDividere e unireRiepilogo - Tessitore di stringhe4Blocchi, Proc e Lambda
Che cos’è un Block?do..end vs parentesi graffeLa keyword yieldParametri del BlockProc e LambdaRiepilogo - Iteratore personalizzato7Hash in Ruby - Parte 2
Hash.new con valori predefinitiIterare sugli hashHash annidatiUnire e trasformareRipasso - Contatore di frequenza10Progetto - Registri degli studenti
Panoramica del progettoAggiungere uno studente2Intervalli
Che cos'è un intervallo?Metodi degli intervalliIntervalli in Case / WhenRiepilogo - Esercitarsi con gli intervalli5La potenza di Enumerable
Select e RejectConcatenare MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRiepilogo - Pipeline di datiEsercitati da solo: Compilatore Ruby online