19
Ho appena iniziato a imparare rubino. Ho una serie di hash. Voglio essere in grado di ordinare l'array basato su un elemento nell'hash. Penso che dovrei essere in grado di usare il metodo sort_by. Qualcuno può aiutarmi?ruby sort_by method
#array of hashes
array = []
hash1 = {:name => "john", :age => 23}
hash2 = {:name => "tom", :age => 45}
hash3 = {:name => "adam", :age => 3}
array.push(hash1, hash2, hash3)
puts(array)
Ecco il mio codice sort_by:
# sort by name
array.sort_by do |item|
item[:name]
end
puts(array)
Non succede nulla alla matrice. Non ci sono errori neanche.
Grazie. Ho anche capito lo stesso. Ho visto un altro sort_by esempio. Quindi sort_by non funziona sul posto. –
I metodi Bang (quelli che terminano con!) Si modificano, ma è buona norma non usarli e creare nuovi oggetti come versioni modificate di quelli vecchi. Piccoli bug possono essere introdotti nei tuoi programmi consentendo metodi per mutare i tuoi oggetti. – quandrum
Grazie per l'intuizione. –