mi piacerebbe tornare un array di hash basato sulla combinazione di sport e tipoRuby, hash unici in serie basati su più campi
Ho il seguente array:
[
{ sport: "football", type: 11, other_key: 5 },
{ sport: "football", type: 12, othey_key: 100 },
{ sport: "football", type: 11, othey_key: 700 },
{ sport: "basketball", type: 11, othey_key: 200 },
{ sport: "basketball", type: 11, othey_key: 500 }
]
I 'd piacerebbe tornare:
[
{ sport: "football", type: 11, other_key: 5 },
{ sport: "football", type: 12, othey_key: 100 },
{ sport: "basketball", type: 11, othey_key: 200 },
]
ho cercato di usare (pseudocodice):
[{}, {}, {}].uniq { |m| m.sport and m.type }
So di poter creare un array di questo tipo con i loop, sono abbastanza nuovo da Ruby e sono curioso di sapere se esiste un modo migliore (più elegante) per farlo.
Sì, 'uniq' con un blocco è la strada da percorrere, ma ecco un altro modo:' arr.group_by {| h | [h [: sport], h [: tipo]]} .values.map (&: first) '. –