Sono consapevole che per sommare elementi dell'array in rubino si può utilizzare il metodo di iniezione, cioèCome sommare proprietà degli oggetti all'interno di un array in Ruby
array = [1,2,3,4,5];
puts array.inject(0, &:+)
Ma come posso riassumere le proprietà degli oggetti all'interno di un array di oggetti, ad esempio?
C'è una matrice di oggetti e ogni oggetto ha una proprietà "contanti" per esempio. Quindi voglio riassumere i loro saldi di cassa in un totale. Qualcosa di simile ...
array.cash.inject(0, &:+) # (but this doesn't work)
mi rendo conto che probabilmente potrebbe fare un nuovo array composto solo il denaro proprietà e riassumere questo, ma sto cercando un metodo più pulito, se possibile!
Perfetto, grazie! –
Questo passaggio però su 'array', che potrebbe non essere consigliabile se ci sono molti elementi.Perché non usare semplicemente un blocco adeguato per "iniettare"? Anche 'reduce/inject' prende direttamente un argomento di simbolo, non c'è bisogno di' Symbol # to_proc' :-) –
nota che non è necessario inviare un blocco, 'inject' sa cosa fare con un simbolo:' iniettare (0,: +) ' – tokland